猿问

如何模拟在函数外部实例化的常量?

我有一个在函数外部实例化的常量,我希望对该函数进行单元测试。但是我不想每次更新该常数时都更新我的单元测试结果。有没有办法模拟该常量并“告诉函数”使用模拟的常量而不是实际的常量?我宁愿不必创建返回该常量的新函数(我发现这是可能的)。


utils.js


const data = [1, 2, 3]


const functionToTest = () => {

    if (data.includes(2)) {

        return true

    }


    return false

}

test.js


describe('testing functionToTest', () => {

    const dataReplacement = [3, 4, 5]


    tellFunctionToTest('hey, use dataReplacement instead of data')

})

我知道我可以将数据作为参数传递,但如果可能的话,我宁愿不传递。谢谢您的帮助 !


慕姐4208626
浏览 142回答 2
2回答

FFIVE

一种方法是导出data并在functionToTest以下位置使用导出:code.jsexports.data = [1, 2, 3];exports.functionToTest = () => exports.data.includes(2);code.test.jsconst assert = require('assert');const code = require('./code');describe('functionToTest', () => {  it('should work', () => {    code.data = [3, 4, 5];    assert(code.functionToTest() === false);  // Success!  });});
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答