web-dev-qa-db-ja.com

CoffeeScriptユニットテスト?

RailsアプリケーションでCoffeeScriptを使用していますが、単体テストを行いたいのですが、Googleは何も表示しませんでした。独自のテストフレームワークを作成する以外に、それを行う方法はありますか?またはCoffeeScriptが出力するJavaScriptをテストしますか?

34
Alex Korban

CoffeeScriptでは任意のJavaScriptテストフレームワークを使用できます。これは、CoffeeScript自体を実行できないために必要なCoffeeScriptが出力するJavascriptをテストします。

CoffeeScript用に独自のテストフレームワークを作成するのは楽しいですが( 私は )、まったく不必要です。

更新: Jasmine テストは node.jsで実行 にすることができます。この場合、コンパイル手順を必要とせずに、テストとテスト対象のコードの両方をCoffeeScriptにすることができます。

24
liammclennan

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と入力します

11
PandaWood

私は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変数をカリー化する必要性は、記事で説明されています...

2
Graham Ashton

Coffee-Scriptユニットテストでは、試してみることができます Beast-Test Coffee-Script用にゼロから作成されました。 FYI私は自分ですが、私はあなたが少なく、それどれも好きだと思います。 JUnitに似ています

0
Lpc_dark