【发布时间】:2017-04-26 13:49:30
【问题描述】:
最近我熟悉了 Jest 库和单元测试概念,并且由于 jest 的文档,我的代码中的所有内容都正确无误。
但我需要知道在 Jest 和其他单元测试库中模拟和取消模拟概念之间有什么区别。
谢谢
【问题讨论】:
标签: javascript unit-testing testing mocking jestjs
最近我熟悉了 Jest 库和单元测试概念,并且由于 jest 的文档,我的代码中的所有内容都正确无误。
但我需要知道在 Jest 和其他单元测试库中模拟和取消模拟概念之间有什么区别。
谢谢
【问题讨论】:
标签: javascript unit-testing testing mocking jestjs
Mock 意味着用另一个实例替换一个实例。开玩笑地说,它用于用您自己的模块替换导入模块的实现。
jest.mock('yourModule', () => {test: ()=> 'test'})
其主要思想是在单元测试中隔离您的代码,以便您只测试一个模块,而不受应用程序其他部分或外部代码的影响。这有很多优点。首先,如果一个模块中的代码中断,只有这部分的测试会失败,而不是只导入这个模块的部分的全部测试。其次,您可以简化测试本身,因为您不需要启动返回特定数据的服务器,这也会减慢您的代码。
取消模拟功能是自动模拟功能的原因,这是过去的默认设置。自动模拟将用默认模拟替换所有导入的模块。因为这对于某些模块是有意义的,但对于 lodash 是不需要的,例如,您可以取消对它们的模拟。因此,如果需要,通常需要在 automock 开启的情况下进行 unmock 以获得原始实现。
【讨论】: