gpt4 book ai didi

reactjs - 如何使用 Jest 监视默认导出函数?

转载 作者:行者123 更新时间:2023-12-03 13:07:29 25 4
gpt4 key购买 nike

假设我有一个导出默认函数的简单文件:

// UniqueIdGenerator.js
const uniqueIdGenerator = () => Math.random().toString(36).substring(2, 8);

export default uniqueIdGenerator;

我会这样使用:

import uniqueIdGenerator from './UniqueIdGenerator';
// ...
uniqueIdGenerator();

我想在测试中断言调用此方法时会保留原始功能。我会使用 jest.spyOn 来做到这一点,但是它需要一个对象以及一个函数名称作为参数。如何以干净的方式做到这一点?还有类似的GitHub issue对于任何感兴趣的人来说, Jasmine

最佳答案

我最终放弃了默认导出:

// UniqueIdGenerator.js
export const uniqueIdGenerator = () => Math.random().toString(36).substring(2, 8);

然后我可以像这样使用和监视它:

import * as UniqueIdGenerator from './UniqueIdGenerator';
// ...
const spy = jest.spyOn(UniqueIdGenerator, 'uniqueIdGenerator');

Some recommend将它们包装在 const 对象中,然后将其导出。我想你也可以使用一个类来包装。

但是,如果您无法修改该类,仍然有一个(不太好的)解决方案:

import * as UniqueIdGenerator from './UniqueIdGenerator';
// ...
const spy = jest.spyOn(UniqueIdGenerator, 'default');

关于reactjs - 如何使用 Jest 监视默认导出函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54245654/

25 4 0
文章推荐: validation - 使用 React 和 Material-ui 进行表单验证
文章推荐: reactjs - Material ui 中的 导致水平滚动 - React
文章推荐: reactjs - React组件的动态加载
文章推荐: reactjs - Jest 进行 spy 事件时出现类型错误 : Cannot set property getRequest of# which has only a getter