2017-06-28 15 views
1

私のアプリケーションでajaxリクエストをテストしたいと思います。iFrameでアプリケーションにsinon jsを挿入する方法

アプリケーションはiFrameで実行され、iFrameのラッパーページがsinonでアプリケーションをテストすることを望みます(ラッパーは応答を送信します)。

私はsinonの偽のサーバー(sinon.fakeserver.create())テストアプリケーションにwindow'sオブジェクトに入れてみましたが、Ajaxの呼び出しに応答を送信するとき、それは動作しませんでした。

アイデアがはっきりと理解できることを願っています。

答えて

0

これは簡単です。

sinon.fakeserver.createに電話すると、window.XmlHttpRequestはsinonオブジェクトに置き換えられます。

そして、あなたが割り当てて、答えを、例

var server=sinon.fakeserver.create(); document.getElementByID("iframe").addEventListener("load", function(){ document.getElementByID("iframe").contentWindow.XMLHttpRequest=window.XMLHttpRequest; });

+0

感謝のために、ターゲットウィンドウオブジェクトを上書きするが、それは(それを試してみました)動作しませんすることができます。 iFrame html srcファイルを作成すると、偽のサーバー作成のために失敗します。 –

+0

それは私のためにうまく動作します。だから、あなたのAjax呼び出しは、ページロード中に使われていないと思います。そして、この解決策はiframeからのonloadイベントに依存します –

+0

だから私は何をする必要がありますか? iFrameにhtmlを挿入しますか? addEventListener?偽物を作成する? –

関連する問題