1

ブラウザー以外の環境で jQuery を実行できるように、window.document オブジェクトを複製する方法を探しています。

私の目標は、.NET JavaScript インタープリターの助けを借りて、MSTest で実行される一連の JavaScript ユニット テストを用意することです。これらの JavaScript 単体テストを、残りの C# テストと共に実行したいと考えています。

これまでのところ、インタープリターを使用した単純な単体テストは正常に機能し、完全に動作しますが、jQuery をスローしてブラウザー オブジェクトをミックスに使用すると、非ブラウザー環境が原因で機能しません。検索しましたが、使用できるモック/偽のドキュメント オブジェクトが見つかりません。

4

2 に答える 2

0

MSTest で JavaScript 単体テストを実行する場合は、Chutzpahを参照してください。Visual Studio と統合され、テストと結果がテスト エクスプローラー (通常の C# 単体テストと同じパネル) に表示されます。QUnit、ジャスミン、モカをサポートしています。PhantomJSヘッドレス ブラウザを使用しているため、DOM などを処理します。

html ファイルまたは js ファイルのいずれかを取るコマンド ライン テスト ランナーがあり、選択したファイルでテストを実行するための VS コンテキスト メニュー項目があります。

テスト エクスプローラー用の Chutzpah テスト アダプター

Chutzpah テスト ランナー コンテキスト メニュー拡張

GitHub のフツパー

ドキュメントの嘲笑について。テストの前に、必要な DOM 要素をコードで作成することをお勧めします。PhantomJS は DOM を提供するため、テストが Chutzpah で実行されるときに、jQuery コードが要素を取得できるようになります。

とても使いやすいと思います。

于 2014-11-24T20:27:18.873 に答える
0

ドキュメントオブジェクトだけではありません。Jquery はブラウザー インフラストラクチャと深く結びついており、完全な DOM、コールバック、CSS サポートなどを必要とします。

clr の世界で同等のものを見つけることはできませんが、htmlUnit/rhino で jquery を実行することに成功しました。

では、どのように使用できますか?最も簡単な方法は、ヘッダーレスのエミュレートされたブラウザーとして htmlUnit と Rhino を実行する Java コマンド ライン アプリを作成し、コマンド ラインで実行する jsUnit テストを挿入することです。

より良い統合が必要な場合は、IKVM で htmlUnit と Rhino を実行してみてください。このようにして、C# テストから直接テストをトリガーできます。

もう 1 つは、Selenium Webdriver/OpenQA を使用することです。C# インターフェースを備えています。次に、実際のブラウザーまたはヘッダーなしの同等物に対してテストを実行できます。これが私が使用するアプローチです。開発中は Chrome に対して実行するので、何が壊れているかを確認できます。次に、継続的な統合テストのために htmlUnit/Rhino に対して実行します。

于 2012-07-05T22:24:23.340 に答える