我有一个要测试的脚本,该脚本包含全局变量,其中一些已通过函数调用初始化。例如
var g_count = 0;
var g_util = addLibrary( "util.lib" );
我想同时模拟g_count
和g_util
如果我在测试函数中有一个函数调用,则可以使用addLibrary = jasmine.createSpy();
对其进行轻松模拟,但是一旦它在全局范围内,模拟就会失败,并且会出现错误消息
参考错误:未定义addLibrary。
编辑:我弄清楚了如何模拟变量。我将其添加到全局属性
var globals = {
g_count : null
}
导出
module.exports = {
globals: globals
}
然后监视
spyOnProperty(util.globals, 'g_count').and.returnValue(5);
我仍然不知道addLibrary
函数
答案 0 :(得分:0)
我修复了addLibrary
的错误。由于它用于初始化全局变量,因此在我需要脚本时被调用。将addLibrary = jasmine.createSpy();
添加到require(...)
上方即可解决问题。