作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 __mocks__
中有一个手动模拟文件夹,名为 client.ts
.现在在我的单元测试中,我调用 jest.mock('./client')
.这工作正常,并开 Jest 导入了模拟文件夹。现在我有一个需要覆盖此行为的场景(测试)。我用了mockImplementationOnce
在单元测试中。
import mockClient from './client';
(mockClient.getObject as jest.Mock).mockImplementationOnce(() => {
console.log('calling the mock of the mock');
return Promise.resolve('abcde');
});
__mocks__
中加载手动模拟。文件夹而不是为此特定测试加载此模拟。我在这里错过了什么吗?
最佳答案
这应该有效:
import mockClient from './client';
test('getObject', async () => {
mockClient.getObject.mockImplementationOnce(() => {
console.log('calling the mock of the mock');
return Promise.resolve('abcde');
});
await mockClient.getObject();
})
mockImplementationOnce
是一个好习惯就在调用之前,以避免在
beforeEach
中的任何覆盖或任何其他冲突。
关于typescript - Jest mockImplementationOnce 不覆盖手动模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58129020/
我在 __mocks__ 中有一个手动模拟文件夹,名为 client.ts .现在在我的单元测试中,我调用 jest.mock('./client') .这工作正常,并开 Jest 导入了模拟文件夹。
我正在使用 JEST 框架对我的 node.js 项目进行单元测试。我使用 mockImplementationOnce 来模拟第三方库方法,如下所示: jest.mock('abc', () =>
我是一名优秀的程序员,十分优秀!