繁体   English   中英

茉莉花-如何模拟全局变量和函数

[英]Jasmine - How To Mock Global Variables & Functions

我有一个要测试的脚本,其中包括全局变量,其中一些已通过函数调用进行了初始化。 例如

var g_count = 0;
var g_util = addLibrary( "util.lib" );

我想模拟g_countg_util

如果我在测试函数中有函数调用,则可以轻松地使用addLibrary = jasmine.createSpy();对其进行模拟addLibrary = jasmine.createSpy(); 但是一旦进入全局范围,模拟就会失败,并且我会收到一条错误消息

参考错误:未定义addLibrary。

编辑:我想出了如何模拟变量。 我已将其添加到全球资产中,

var globals = {
    g_count : null
}

导出了

module.exports = {
    globals: globals
}

然后窥探

spyOnProperty(util.globals, 'g_count').and.returnValue(5);

我仍然不知道addLibrary函数

我修复了addLibrary的错误。 由于它用于初始化全局变量,因此在我需要脚本时被调用。 添加addLibrary = jasmine.createSpy(); 高于require(...)修复它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM