这是恢复模拟功能的Jest方法

时间:2017-03-13 22:27:07

标签: javascript testing mocking jestjs

在Sinon的存根中,恢复功能非常容易。

_.remove(myArray, {
        state.name: 'object #1'
    });

我希望用Jest做同样的事情。我得到的最接近的是这个丑陋的代码:

const stub = sinon.stub(fs,"writeFile",()=>{})
...
fs.writeFile.restore()

2 个答案:

答案 0 :(得分:19)

最后,由于@ nbkhope的贡献,我找到了一个可行的解决方案。

因此,以下代码按预期工作,即它嘲笑代码然后恢复原始行为:

const spy = jest.spyOn(
    fs,
    'writeFile' 
  ).mockImplementation((filePath,data) => {
  ...
})
...
spy.mockRestore()

答案 1 :(得分:12)

如果您想要clear all the calls模拟功能,可以使用:

const myMock = jest.fn();
// ...
myMock.mockClear();

要存储在模拟中的clear everything,请尝试改为:

myMock.mockReset();