用require.js和jasmine模拟Google Earth事件



我有以下模块,但在我的茉莉测试期间(即-在我的测试线束内),我很难设置这个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调用测试任何你想要的东西

相关内容

  • 没有找到相关文章

最新更新