RailsアプリケーションでCoffeeScriptを使用していますが、単体テストを行いたいのですが、Googleは何も表示しませんでした。独自のテストフレームワークを作成する以外に、それを行う方法はありますか?またはCoffeeScriptが出力するJavaScriptをテストしますか?
CoffeeScriptでは任意のJavaScriptテストフレームワークを使用できます。これは、CoffeeScript自体を実行できないために必要なCoffeeScriptが出力するJavascriptをテストします。
CoffeeScript用に独自のテストフレームワークを作成するのは楽しいですが( 私は )、まったく不必要です。
更新: Jasmine テストは node.jsで実行 にすることができます。この場合、コンパイル手順を必要とせずに、テストとテスト対象のコードの両方をCoffeeScriptにすることができます。
QUnitは「現状のまま」使用できますが、それでもコーヒースクリプトのみを記述し、グルーコードは記述しません。
例として、githubに非常に小さく純粋なコーヒースクリプトプロジェクトがあります rubyann 。
HTMLテストページ rubyann_tests.html は、 rubyann_tests.coffee をテストするファイルを参照します jquery.rubyann.coffee 。私はこれを機能させるためにJavaScriptやその他のコードを書きませんでした。
コマンドライン引数-allow-file-access-from-filesを使用する場合、テストはローカルマシンのChrome 。しかし、Firefoxでも動作し、IEでも問題ありません。
addendum-テストはNode/gulp/qunitjsを介してコマンドラインで実行するようにも設定されています-リポジトリをダウンロードしてnpm run test
と入力します
私はQUnitを使用してRailsアプリでCoffeeScriptをテストしており、その方法をここに記述しています: http://effectif.com/coffeescript/qunit-boilerplate
私の記事で最も興味深いのは、Coffee.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
変数をカリー化する必要性は、記事で説明されています...
Coffee-Scriptユニットテストでは、試してみることができます Beast-Test Coffee-Script用にゼロから作成されました。 FYI私は自分ですが、私はあなたが少なく、それどれも好きだと思います。 JUnitに似ています