2012-12-26 30 views
0

我有以下模块,但是在我的茉莉花测试期间(即 - 在我的测试工具内),我很难设置这个模拟。特别是,我想知道如何在测试工具上下文中替代异步!https://www.google.com/jsapi调用(或硬编码的URL引用),以及哪些事件I会spyOn在“google.load”和“google.earth.createInstance”的测试中,以便在我的测试中正确触发回调?在下面的示例代码中,uiSelector参数将是加载地球图的div ID。使用require.js和jasmine嘲笑Google Earth事件

提前感谢您的时间。

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); } }); 
      } 

     }; 

}); 

回答

1

你可以只是这样做:

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

您可以测试你想用这个间谍存根调用什么都。