【问题标题】:Jasmine - How To Mock Global Variables & FunctionsJasmine - 如何模拟全局变量和函数
【发布时间】:2019-06-10 18:37:30
【问题描述】:

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

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

我想同时模拟 g_countg_util

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

引用错误:addLibrary 未定义。

编辑:我想出了如何模拟变量。我将它添加到全局属性中,

var globals = {
    g_count : null
}

导出

module.exports = {
    globals: globals
}

然后窥探它

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

我还是搞不懂addLibrary函数

【问题讨论】:

    标签: javascript unit-testing jasmine mocking


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-06-13
      • 2016-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      相关资源
      最近更新 更多