1

アプリのジャスミン テストをセットアップしました。私のアプリには、IE8 で動作しないはずの JavaScript があります。

var foo = Object.create(Array.prototype);

mvn jasmine:bdd を実行し、Internet Explorer でテスト ページを開くと (browserMode を Internet Explorer 8 に設定)、期待どおりに失敗します。

TypeError: Object doesn't support property or method 'create'

ただし、実行すると:

mvn jasmine:test -DbrowserVersion=INTERNET_EXPLORER_8

私のテストはすべて成功しています。ログには、browserVersion が INTERNET_EXPLORER_8 に設定されていることが示されています。

どちらも同じ結果になると思っていました。これは、キャッチしたかったjsエラーを発生させたため、ciテストで問題を引き起こしています。

これは期待どおりに機能する必要がありますか?そうでない場合は、何を変更すればよいですか?

また、これは複数のブラウザーをテストする方法を知っている最良の方法です。私が行方不明になっているより良い方法はありますか?

編集

同僚は、browserVersion がそのようなエラーをキャッチすることさえないという私の希望を打ち砕こうとし、テストがブラウザー固有の JavaScript もカバーできるようにヘッダーを変更することのみを意図していると提案しました (ブラウザは特定のバージョンです)。これは正確ですか?

4

1 に答える 1

0

jasmine tests browserVersion プロパティが js の実行方法の内部を変更しないことは非常に正確であるように思われます。つまり、癖や各ブラウザーはテストされません。実際のブラウザーでジャスミン テストを実行できるテスト用の js-test-driver を使用することに成功しました。これはこれを行う正しい方法のようです。ただし、このパスを新しく開始する場合は、代わりに Karma を検討します (以前は testacular という名前で、js-test-driver の改良版としてビルドされていました)。

于 2013-11-08T17:08:03.917 に答える