0

次のモジュールがありますが、ジャスミンテスト中(つまり、テストハーネスの内部)にモック用にこれを設定するのに問題があります。特に、テストハーネスのコンテキスト内でasync!https://www.google.com/jsapi呼び出し(またはハードコードされたURL参照)をどのように置き換えるか、またどのイベントを使用するかについて疑問に思っていました。テスト内でコールバックを適切にトリガーするために、「google.load」と「google.earth.createInstance」の両方のテスト内でspyOnを実行しますか?以下のサンプルコードでは、uiSelector引数は、地球地図が読み込まれるdividになります。

よろしくお願いします。

define('googleearthloader',
[ "async!https://www.google.com/jsapi" ],
function() {

return {
        init: function(uiSelector, callbackSuccess,callbackError) {
            google.load("earth", "1", { 'callback': function() { google.earth.createInstance(uiSelector, callbackSuccess, callbackError); } });
            }

       };

});
4

1 に答える 1

1

あなたはこれを行うことができます:

var spy = sinon.stub(google, 'load');
.....your init call
expect(spy).toHaveBeenCalledWith("earth1", "1");

このスパイスタブ呼び出しを使用して、必要なものをテストできます。

于 2012-12-26T18:18:11.513 に答える