我有以下模块,但在我的茉莉测试期间(即-在我的测试线束内),我很难设置这个mock。特别是,我想知道我将如何/应该在测试工具的上下文中替换async!https://www.google.com/jsapi调用(或硬编码的url引用),以及我将在"google"one_answers"google"的测试中监视哪些事件。"加载"one_answers"google.earth"。createInstance"以便在我的测试中正确触发回调?在下面的示例代码中,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); } });
}
};
});
你可以这样做:
var spy = sinon.stub(google, 'load');
.....your init call
expect(spy).toHaveBeenCalledWith("earth1", "1");
你可以用这个spy stub调用测试任何你想要的东西