reactjs - 在脚本加载时使用的模拟实用程序函数
问题描述
为简单起见,我在stackblitz创建了一个示例应用程序。
Hello组件使用了一个实用函数,我需要对其进行模拟以对其进行测试。
const hmmm = mockMe();
const Hello = () => (
<div>
<h1>Hello StackBlitz!</h1>
<p>{hmmm}</p>
</div>
);
我尝试了几种方法来模拟该函数,例如:
import * as utils from '../utils';
describe('Hello component', () => {
it('should mock the utility function', () => {
jest.spyOn(utils , 'mockMe').mockReturnValue("Mocked!");
// render the component and test it
}
}
我的问题是Hello.js在测试文件之前运行。因此,它在应用模拟之前执行实用程序功能。
我能想到的唯一解决方案是更改组件代码并将调用移动到渲染函数内的实用程序。我想避免这种变化。
有没有办法模拟效用函数并保持代码不变?
解决方案
在使用方法之前,utils
您需要模拟utils
文件夹。例如,jest.mock('../utils');
推荐阅读
- laravel-5.8 - 如何保存社交网络?
- python - 在不覆盖透明度的情况下更改表面颜色
- git - 解释“git add”的“-A”标志
- tfs - 在 Nunit BDD 规范流中截取屏幕截图并附加到 DevOps 测试结果
- spring-mvc - Jackson 反序列化 LocalDateTime
- python - 我的 ipython 终端无法启动,出现导入错误
- windows - Bash 脚本在特定大小和位置打开多个 git-bash 窗口?
- c - C 程序 abort() 使 .exe 访问在终止后被拒绝
- sql-server - 如何将可选的多对多关系添加到另一个多对多关系表?
- c++ - 创建一个指向二维浮点数组的指针数组