Jest 中 mock 和 unmock 测试的区别
Difference between mock and unmock test in Jest
最近我熟悉了 Jest 库和单元测试概念,并且由于 jest 的文档,我的代码中的一切都是正确的。
但我需要知道 Jest 和其他单元测试库中的 mocking 和 unmocking 概念有什么区别。
谢谢
Mock 的意思是用一个实例替换另一个实例。开玩笑地说,它用于用您自己的模块替换导入模块的实现。
jest.mock('yourModule', () => {test: ()=> 'test'})
其背后的主要思想是在单元测试中隔离您的代码,这样您就可以只测试一个模块而不受应用程序其他部分或外部代码的影响。这有很多优点。首先,如果一个模块中的代码中断,则只有这部分的测试会失败,而不是只导入该模块的部分的所有测试。其次,您可以简化测试本身,因为您不需要使用特定数据启动 returns 服务器,这也会降低您的代码速度。
unmock 功能是 automock 功能的原因,这是过去的默认设置。 Automocking 将用默认模拟替换所有导入的模块。因为这对某些模块有意义但不希望 lodash
例如你可以然后取消对它们的模拟。因此,在打开 automock 的情况下,最需要取消模拟,以便在需要时获得原始实现。
最近我熟悉了 Jest 库和单元测试概念,并且由于 jest 的文档,我的代码中的一切都是正确的。
但我需要知道 Jest 和其他单元测试库中的 mocking 和 unmocking 概念有什么区别。
谢谢
Mock 的意思是用一个实例替换另一个实例。开玩笑地说,它用于用您自己的模块替换导入模块的实现。
jest.mock('yourModule', () => {test: ()=> 'test'})
其背后的主要思想是在单元测试中隔离您的代码,这样您就可以只测试一个模块而不受应用程序其他部分或外部代码的影响。这有很多优点。首先,如果一个模块中的代码中断,则只有这部分的测试会失败,而不是只导入该模块的部分的所有测试。其次,您可以简化测试本身,因为您不需要使用特定数据启动 returns 服务器,这也会降低您的代码速度。
unmock 功能是 automock 功能的原因,这是过去的默认设置。 Automocking 将用默认模拟替换所有导入的模块。因为这对某些模块有意义但不希望 lodash
例如你可以然后取消对它们的模拟。因此,在打开 automock 的情况下,最需要取消模拟,以便在需要时获得原始实现。