我正在尽我最大的努力跟医生们一起开玩笑,我也在尽我最大的努力去自学。我在跟踪官方玩笑网站上的文档时遇到了问题。我在模拟模块部分。这与axios有关,但我一直在类型记录中发现错误,即mockImplementation不是属性(不管模拟是什么)。
我试着环顾四周,看看我的配置是否有问题,但我想不出来。
foo.ts
// foo.ts
export default function() {
// some implementation;
};test.ts
import foo from '../src/foo';
// test.js
jest.mock('../src/foo'); // this happens automatically with automocking
foo.mockImplementation(() => 42);
foo();
console.log(foo())这是我在mockImplementatin上遇到的错误
Property 'mockImplementation' does not exist on type '() => void'.ts(2339)我所做的就是跟踪那些医生。我一直没问题,直到我到了部门。
发布于 2019-09-20 19:17:35
这个foo.ts
export default function() {
return 1;
};...can是这样被嘲笑的:
import * as fooModule from '../src/foo';
jest.mock('../src/foo');
const mockedFooModule = fooModule as jest.Mocked<typeof fooModule>;
const foo = mockedFooModule.default;
test('foo', () => {
foo.mockImplementation(() => 2);
expect(foo()).toBe(2); // Success!
})Jest的输入提供了jest.Mocked,它可以用于为模块的自动模拟版本生成正确的类型。
在本例中,模块只有一个default导出,因此这一行:
const foo = mockedFooModule.default...will将foo分配给正确类型的模拟默认导出。
https://stackoverflow.com/questions/58032756
复制相似问题