为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕姐4208626 2021-05-11 16:09:14
我有一个在函数外部实例化的常量,我希望对该函数进行单元测试。但是我不想每次更新该常数时都更新我的单元测试结果。有没有办法模拟该常量并“告诉函数”使用模拟的常量而不是实际的常量?我宁愿不必创建返回该常量的新函数(我发现这是可能的)。utils.jsconst data = [1, 2, 3]const functionToTest = () => {    if (data.includes(2)) {        return true    }    return false}test.jsdescribe('testing functionToTest', () => {    const dataReplacement = [3, 4, 5]    tellFunctionToTest('hey, use dataReplacement instead of data')})我知道我可以将数据作为参数传递,但如果可能的话,我宁愿不传递。谢谢您的帮助 !
查看完整描述

2 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

一种方法是导出data并在functionToTest以下位置使用导出:


code.js


exports.data = [1, 2, 3];


exports.functionToTest = () => exports.data.includes(2);

code.test.js


const assert = require('assert');

const code = require('./code');


describe('functionToTest', () => {

  it('should work', () => {

    code.data = [3, 4, 5];

    assert(code.functionToTest() === false);  // Success!

  });

});


查看完整回答
反对 回复 2021-05-13
  • 2 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信