我们正在使用require
和Browserify,因此导入的单功能模块如下:
var loadJson = require('../loadJson');
并像这样使用:
x = loadJson(url);
我想spyOn
表示loadJson函数,但似乎不可能。
这不是一个全局函数,所以这不起作用:
spyOn(window, 'loadJson')
这不是本地功能,所以这不起作用:
loadJson = createSpy('loadJsonSpy', loadJson).and.callThrough();
当我require
模块进入我的Jasmine规范时,该函数在该闭包内部可见,但这与其他模块实际上使用loadJson
实际上不同。
简而言之,我认为在这种情况下不可能使用spyOn
- 这是正确的吗?任何有创意的解决方法?
答案 0 :(得分:0)
如果loadJson
是单身,那么你可以这样做。
var functionsToSpyOn = {loadJson: loadJson}
spyOn(functionsToSpyOn, 'loadJson')
这是我遇到同样问题时使用的解决方法。