質問

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に似ています

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top