所以,我正在尝试做一些表面上应该非常简单的事情......
我在以下定义了一些常量:` //constants.js
module.exports = {
MY_CONSTANT: "TEST"
}
Run Code Online (Sandbox Code Playgroud)
` 我有一个我正在尝试测试的文件,它有一个这样的分支语句:
`
//file to test
//...
if(CONSTANTS.MY_CONSTANT === "TEST")
{...}
...
Run Code Online (Sandbox Code Playgroud)
`
我有一个这样的测试:`
//test
it("Should do something when MY_CONSTANT === "TEST, () => {
//This is fine as it is exported as TEST
})
it("Should do something else when MY_CONSTANT !== "TEST, () => {
//This seems annoyingly difficult to get working...
})
Run Code Online (Sandbox Code Playgroud)
`
我试过这个 - 运气不好,它不会改变实际值
我试过改变常量导出来导出一个对象(那没有用)
我试过在我的测试文件中为常量添加一个 jest.mock(..) 并在测试中做一个 unmock 我不需要它们被嘲笑。
我尝试在测试函数中添加 jest.doMock(...) 我需要更改值。(连同 jest.resetModules 和另一个需要)
我已经尝试将 jest.doMock(...) …