- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尽力遵循 Jest 的文档,并且我也在尽力自学。我在关注官方 Jest 网站上的文档时遇到问题。我在模拟模块部分。它与 axios 有关,但我不断在 typescript 中收到错误,该错误表明该模拟实现不是属性(无论模拟是什么)
我尝试四处查看是否是我的配置问题,但我无法弄清楚。
// foo.ts
export default function() {
// some implementation;
};
测试.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)
我所做的就是遵循文档。在进入部分之前我没有遇到任何问题。
最佳答案
这个foo.ts
:
export default function() {
return 1;
};
...可以这样 mock :
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
...将把 foo
分配给正确键入的模拟默认导出。
关于typescript - 按照 Jest Docs,在 mockImplementation() 上出现错误。我究竟做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58032756/
我试图在这里搜索每一个类似的问题,不幸的是没有解决方案对我有用。 我目前正在尝试从一个模块模拟命名导出,如下所示: 模块.ts export function someFunctionOne() {
我正在使用 typescript + jest,并且在创建模拟实现时遇到了一些类型检查问题。例如,我想模拟 Credentials来自 aws-sdk 的对象: import { Credential
我有一个服务类 服务.js class Service { } export default new Service(); 我正在尝试为此提供一个模拟实现。如果我使用这样的东西: jest.mock(
我正在使用 TypeScript 学习 Jest,但遇到以下类型错误: Property 'mockImplementation' does not exist on type '() => Elem
我正在尽力遵循 Jest 的文档,并且我也在尽力自学。我在关注官方 Jest 网站上的文档时遇到问题。我在模拟模块部分。它与 axios 有关,但我不断在 typescript 中收到错误,该错误表明
我有一个使用 child_process.exec 函数的函数: //serverUtils.js: const { promisify } = require('util'); const exec
我无法让 Jest mockImplementation 在特定上下文中使用 Promise.resolve() 返回数据。 在我的 Node.js 代码中,我有一个结构,将所有 API 调用代码放在
我注意到当我们在 jest.fn() 和在 .fn() 和 jest.fn().mockImplementation() 中作为参数传递的实现时,我们得到了相同的行为。如果是这样,选择合身只是品味问题
我是一名优秀的程序员,十分优秀!