5

BackboneJSとRequireJSを使用してWebアプリを構築しており、UIの相互作用とAJAXを介したデータ取得のために何らかの単体テストを実装する必要があります。QUnitJasmineに出くわしましたが、これをアプリに統合する方法がよくわかりません。

次のようなテストを行っている場合:

  • ユーザーは正常にログインしていますか?
  • サーバーからデータを受信しましたか?
  • ボタンをクリックすると、期待される応答がトリガーされますか?
  • クリックイベントは動的にロードされたHTMLコンテンツで機能しますか?
  • アプリはハッシュ/プッシュ状態のURLの変更に正しく応答しますか?

特定のJSオブジェクトにアクセスし、セッション固有のデータを操作し、プッシュ状態のURLの変更に応答するには、テストをアプリに直接統合する必要があると思います。

QUnitまたはJasmine(または他の提案)をモジュラーアプリに統合して、そのような機能を単体テストするにはどうすればよいですか?

4

3 に答える 3

4

単体テストは本当に簡単です。

テスト HTML ページを作成します。QUnit/NodeUnit/Jasmine/TestLibraryOfChoice を含めます

次に、requireJS を使用して、JavaScript モジュールの 1 つをロードします。

エクスポートされたオブジェクトまたは関数をテストするだけです。これは、モジュールの有効な入力をテストし、出力が正しいことをアサートすることを意味します。

ajax をモックアウトして HTML モックを作成する必要がある場合があります

于 2011-11-21T13:10:12.910 に答える
2

Dojo Objective Harness (DOH)は非常に優れた単体テスト フレームワークであり、ブラウザーに依存せず、非同期関数のテストをサポートします。ウォークスルー ガイドについては、こちらを参照してください。

しかし、あなたのテストケースから、統合テストのようなものが欲しいように見えますか? もしそうなら、Seleniumは優れたブラウザ自動化ツールです。

重要なことに、これらのツールのどちらも、コードを変更する必要はありません (バグを見つけない限り:))

于 2011-11-21T12:52:53.137 に答える
1

requireJS ベースのモジュールが QUnit で単体テストされる例を見たい場合は、http://boilerplatejs.org で javascript リファレンス アーキテクチャをダウンロードしてください

免責事項: 私はその主な著者です。

于 2012-08-21T01:42:30.043 に答える