2012-06-13 7 views
10

ジャスミンテストからモカテストへの変換は、Before(all)、そのレポート機能、およびcoffeescriptのサポートのために行いました。Mocha互換のフィクスチャサポート

私が見つけられなかったことは、モカ(または互換性のあるアサーションライブラリと組み合わせて)がjasmine-jquery(https://github.com/velesin/jasmine-jquery)のようなフィクスチャをサポートしているかどうかです。そのような機能はMochaにはありますか?

私はDOMを操作するブラウザ内のコードをテストしようとしています(つまり、htmlテストランナーと一緒に実行します)。私がテストしている環境内で実行したいのでゾンビを使用したくないからです。

編集:参考のために、解決策を探している間、私はgrunt + mochaを使ってファントムの実装。私はWebkitのカスタム版を使いたいので、これも私の場合はうまくいきません。

答えて

10

私が理解できたことから、答えはノーです。これはおそらく、Mochaが最初にnode.jsをサポートすることを意味していたからです。ノードでは、jasmine-jqueryでのフィクスチャの概念は存在しません。これは、DOM /ブラウザが存在しないためです。

jasmine-jqueryプラグインのフィクスチャサポートを見ると、この機能を自分で構築するのは難しくないかもしれません。基本的な仕組みは、クリーンアップとキャッシングが可能なように、jQueryを使用して外部テンプレートをDOMに追加し、DOMへの参照を保持することです。私はgithubの

編集に何かをリリースすることにした場合

私はこの答えを更新します:ここにある - https://github.com/badunk/js-fixtures。コードと仕様は基本的にjasmine-jqueryからコピーされ、依存関係は削除されました。

+0

js-fixturesはjasmine-jqueryの 'getJSONFixture()'のようにJSONのロードも複製しますか? –

+0

いいえ、それは現在サポートされていません - 私はそれを強化として検討します。 PRの歓迎:https://github.com/badunk/js-fixtures/issues/12 – badunk

+0

これはまだそうですか? Mochaにはセットアップとティアダウン機能があり、ブラウザでのテストの実行をサポートしています。 – Indolering

0

zombie.jsを試しましたか?それはNPMと一緒にインストールされ、フレームワークをテストするのには無関心なようです。

これは私にjQueryで装飾できる完全に機能するウィンドウオブジェクトを与えました。

Browser = require 'zombie' 

browser = new Browser() 
global.window = browser.window 
require '../src/js/vendor/jquery-1.7.1.min.js' 

UPDATE:

私はこの問題を再訪しましたし、それが(NPM経由)jqueryの+ jsdomのように見えますが、より多くの人気があり、軽量なソリューションであるように見えます。例:http://www.netboy.pl/2012/10/testing-jquery-code-with-mocha-chai-and-jsdom/

+0

リンクは機能しなくなりました。 – CodingWithSpike

+0

JSDOMとゾンビは少し問題があります。例えば、 'classList'、' dataset'、そして私が使用したいと思っている他のもののサポートはありません。これで私はファントムズに戻ってきているようだ。 –