笑话:如何取消模拟 index.js 文件中列出的组件?

Posted

技术标签:

【中文标题】笑话:如何取消模拟 index.js 文件中列出的组件?【英文标题】:Jest: How to unmock components listed in an index.js file? 【发布时间】:2016-08-30 18:01:47 【问题描述】:

使用 Jest 对我的反应组件进行单元测试。

我在src/components/index.js 下列出了我的组件,因此我可以执行以下操作:

import MyComponent from 'components';

在使用 jest 时,如何在这样的 require 路径上调用 unmock

jest.unmock('components/MyComponent'); // ???

import  MyComponent  from 'components';

// ... tests below ...

上述方法不起作用,尽管这基本上是预期的结果。

【问题讨论】:

尝试使用unmockedModulePathPatterns 是的。没有运气。 【参考方案1】:

我以前遇到过类似的问题,并且在 jest 12.0.1 中删除了导入解构。

所以而不是;

import  MyComponent  from 'components';

试试;

import index from 'components'
// test code
index.MyComponent

就我个人而言,我通常只是直接包含我想要测试的组件,而不是从索引中引用它。仅当使用未定义将测试放在代码旁边的标准的测试库时,才使用索引似乎值得。

【讨论】:

以上是关于笑话:如何取消模拟 index.js 文件中列出的组件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在笑话测试中模拟 json.parse()

如何在笑话测试中模拟节点“createReadStream”和“readline.createInterface”

如何处理模块和打字稿类型的笑话模拟功能

笑话:模拟 RxJs 管道

笑话:如何模拟监听事件的依赖项?

笑话:如何模拟一个类的一个特定方法