0

我有以下模块,但在我的茉莉花测试期间(即 - 在我的测试工具内部)设置它以进行模拟时遇到困难。特别是,我想知道我将/应该如何在测试工具的上下文中替换 async!https://www.google.com/jsapi 调用(或硬编码的 url 引用),以及哪些事件我是否会在“google.load”和“google.earth.createInstance”的测试中进行spyOn,以便在我的测试中正确触发回调?在下面的示例代码中, uiSelector 参数将是加载地球地图的 div id。

在此先感谢您的时间。

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 回答