web-dev-qa-db-ja.com

Rails 3.1+のJasmine対Mocha JavaScriptテスト

私はジャスミンの経験があり、かなり好きです。誰もがJasmineとMochaの両方、特にRailsの経験がありますか?切り替える価値があるかどうか疑問に思っています。

74
LupineDev

ジャスミンとモカの両方でテストを行いました。まず、切り替えは比較的簡単です。基本的なdescribeit BDDパターンは同じです。アサーションの実行方法を変更し、非同期テスト用に別のインターフェースに切り替える必要があります。全体的に比較可能です。

Mochaの非同期インターフェイスは、はるかにシンプルで一貫性があります。テストとセットアップは、同期または非同期のいずれでも可能です。これに加えて、TJ Holowaychuckが壮大なコード詩人であるという事実は、Mochaを試す良い理由です。

特にjasmine-jqueryプラグインと組み合わせると、Jasmineマッチャーは読みやすくエレガントになります。 Mochaは通常、アサーション用の別のライブラリとペアになります。多くの場合、ブラウザ内テストを行う場合はchai.js、ノードのみのテストを行う場合はshould.jsと組み合わせます。 chaiのassert.equal()インターフェイスには満足していますが、ジャスミンスタイルexpect($("#central_errors").html()).toContain("must provide a name");は私にとってよりエレガントなようです。私はchai.jsのexpect(42).to.be.above(41)スタイルのインターフェイスのファンではありません。これは聴覚的にうまく機能しないためです。

最終的には、これは個人的な好みの質問であり、ジャスミンの代わりに1日かそこらでMochaテストを書いて、それがどのように感じられるかを確認することを強くお勧めします。ジャスミンに固執することに決めたとしても、ジャス​​ミンが解決する問題のいくつかを解決する他の方法を知っているので、まったく価値のある投資です。私はそれを試してみましたが、TJへの賭けは良い賭けであるため、モカに固執していますが、ジャスミンは成熟した堅実な、広く採用されている図書館でもあります。

119
Peter Lyons

GithubのTeabagプロジェクトをご覧ください。具体的には、Mocha、Jasmine、またはQUnitとともにアセットパイプラインを使用できます。

https://github.com/modeset/teaspoon

Mochaは非常に優れたライブラリですが、私は通常Jasmineを使用します-私にとっては、主にJasmineの知識と経験に関するものですが、Mochaにはいくつかの本当にクールな機能があります-グローバルスコープに物事が流れ込んでいるときに知らせるなどです。

このプロジェクトに言及する価値はあると考えました。なぜなら、(異なるスイートで)両方で特に遊んで、自分で決めることができるからです。

4
jejacks0n