coffeescriptユニットテスト?
-
01-10-2019 - |
質問
Railsアプリケーションでcoffeescriptを使用しています。ユニットテストしたいと思います。 Googleは何も現れませんでした。自分のテストフレームワークを作成したり、Coffeescriptが出力しているJavaScriptをテストする以外に、それを行う方法はありますか?
解決
coffeescriptを使用して、JavaScriptテストフレームワークを使用できます。これにより、coffeescript自体が実行できないため、Coffeescriptが出力するJavaScriptがテストされます。
coffeescriptのために独自のテストフレームワークを書くのは楽しいです(やった)しかし、完全に秘密。
アップデート: ジャスミン テストは可能です node.jsで実行します この場合、テスト対象のコードの両方が、コンピレーションステップを必要とせずにCoffeescriptにすることができます。
他のヒント
Qunit "AS-IS"を使用できますが、それでもコーヒースクリプトのみを書きます - 接着剤コードはありません。
例として、GitHubで非常に小さく純粋なコーヒースクリプトプロジェクトを持っています - ルビアン.
HTMLテストページ rubyann_tests.html, 、参照 rubyann_tests.coffee テストするファイル jquery.rubyann.coffee. 。この作業を行うためにJavaScriptやその他のコードを書きませんでした。
コマンドライン引数を使用する場合、テストはローカルマシンのChromeでのみ実行されます -allow-file-access-from-files. 。しかし、それはFirefoxで、さらには問題なくIEで動作します。
補遺 - テストは、ノード/gulp/qunitjsを介してコマンドラインで実行するように設定されています - リポジトリとタイプをダウンロードします npm run test
Qunitを使用してRailsアプリでCoffeescriptをテストしていますが、ここでどのようにやっているのかを書きました。 http://effectif.com/coffeescript/qunit-boilerplate
私の記事で最も興味深いことは、COLLE.LOADへのコールバックを使用して、テストを含むファイルがテスト中のコードを含むファイルの後にロードされることを保証することです。
<script type="text/coffeescript">
for file in ['models', 'controllers']
lib = "../../app/assets/javascripts/#{file}.js.coffee"
load_test = ->
test = "#{file}_test.coffee"
-> CoffeeScript.load(test)
CoffeeScript.load lib, load_test()
</script>
カリーの必要性 test
変数は記事で説明されています...
コーヒースクリプトのユニットテストでは、試すことができます 獣テスト コーヒースクリプトのためにゼロから書かれました。参考までに私は自分自身ですが、それでもあなたはそれを好きになると思います。 Junitに似ています