Dej*_*eff 24 javascript testing mocking jestjs
在Sinon的存根中,恢复功能非常容易.
const stub = sinon.stub(fs,"writeFile",()=>{})
...
fs.writeFile.restore()
Run Code Online (Sandbox Code Playgroud)
我期待与Jest做同样的事情.我得到的最近的是这个丑陋的代码:
const fsWriteFileHolder = fs.writeFile
fs.writeFile = jest.fn()
...
fs.writeFile = fsWriteFileHolder
Run Code Online (Sandbox Code Playgroud)
Dej*_*eff 24
最后,由于@ nbkhope的贡献,我找到了一个可行的解决方案.
所以下面的代码按预期工作,即它嘲笑代码然后恢复原始行为:
const spy = jest.spyOn(
fs,
'writeFile'
).mockImplementation((filePath,data) => {
...
})
...
spy.mockRestore()
Run Code Online (Sandbox Code Playgroud)
nbk*_*ope 15
const myMock = jest.fn();
// ...
myMock.mockClear();
Run Code Online (Sandbox Code Playgroud)
myMock.mockReset();
Run Code Online (Sandbox Code Playgroud)