Jest中模拟和非模拟测试之间的区别

时间:2016-12-11 16:18:55

标签: javascript unit-testing testing mocking jestjs

最近,我已经熟悉了Jest库和单元测试概念,而且由于开玩笑的文档,所有内容都在我的代码中。

但是我需要知道Jest和其他单元测试库中的模拟和取消模式之间的区别。

由于

1 个答案:

答案 0 :(得分:5)

模拟意味着用另一个实例替换实例。在jest中,它用于用您自己的模块替换导入模块的实现。

jest.mock('yourModule', () => {test: ()=> 'test'})

它背后的主要思想是在单元测试中隔离代码,这样您只需测试一个模块而不受应用程序其他部分或外部代码的影响。这有一大堆优势。首先,如果一个模块中的代码中断,则只有该部件的测试将失败,而不是仅对导入该模块的部件进行全部测试。其次,您可以简化测试本身,因为您不需要启动使用特定数据返回的服务器,这也会降低您的代码速度。

unmock功能导致自动插件功能,这是过去的默认功能。自动锁定将使用默认模拟替换所有导入的模块。因为这对于某些模块是有意义的,但是lodash不需要它,例如你可以取消模拟它们。因此,如果需要,可以在启动automock以获取原始实现时进行unmock。

相关问题