开玩笑地从模拟文件中窥探模拟函数

Posted

技术标签:

【中文标题】开玩笑地从模拟文件中窥探模拟函数【英文标题】:jest spy on a mocked function from the mock file 【发布时间】:2021-11-20 15:00:05 【问题描述】:

我有一些业务逻辑和一个模拟文件:

/services/myService.ts

/services/__mocks__/myService.ts.

我有一个测试文件/tests/myService.test.ts,其中包含以下行:

jest.mock('../services/myService');

这个模拟文件,除其他外,模拟一个函数myFunction

我希望能够窥探函数,myFunction 里面 /services/__mocks__/myService.ts.(模拟文件)以确保它被调用(并查看它返回的内容)。

这可能是开玩笑的吗?

谢谢

【问题讨论】:

【参考方案1】:

如果我理解正确:您应该在模拟模块之前从模拟模块导入所需的功能。

我猜你的情况应该可行:

import myFunction from '../services/myService.ts';
jest.mock('../services/myService');
...
expect(myFunction).toHaveBeenCalledTimes(1);

【讨论】:

以上是关于开玩笑地从模拟文件中窥探模拟函数的主要内容,如果未能解决你的问题,请参考以下文章

在开玩笑的模拟模块工厂中模拟一个承诺

Jest - 模拟函数,从另一个文件导入

不能用玩笑模拟模块,并测试函数调用

开玩笑的打字稿 - 模拟日期构造函数

在“if”语句中没有调用模拟函数 - 用玩笑和酶反应应用程序测试?

开玩笑的预期模拟未调用(redux 组件)