1. ホーム
  2. javascript

Rails 3.1+のJavaScriptテストにおけるJasmineとMochaの比較 [終了しました]

2023-11-30 23:43:23

質問

私はJasmineの経験を持っており、かなり気に入っています。 JasmineとMochaの両方、特にRails向けの経験をお持ちの方はいらっしゃいますか? 私は、それが乗り換える価値があるかどうか疑問に思っています。

どのように解決するのですか?

JasmineとMochaの両方でテストをしてみました。まず、切り替えは比較的簡単です。基本的な describeit BDD パターンは同じです。アサーションの方法を変更したり、非同期テスト用に別のインターフェイスに切り替えたりする必要があります。全体として、それらは同等です。

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

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

最終的には、これは個人的な好みの問題なので、Jasmineの代わりにMochaのテストを書いて、それがどのように感じられるかを確認することを強くお勧めします。たとえJasmineに固執することを決めたとしても、それは価値のある投資であり、最初の手の知識の場所からそうすることになり、Jasmineが解決する問題のいくつかを解決する他の方法について認識することができます。私はそれを試してみましたが、Mochaに固執しているのは、TJに賭けることが良い賭けであるということもありますが、Jasmineは成熟し、堅実で、広く採用されているライブラリでもあるのです。