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

mcr*_*nix 3 javascript testing unit-testing mocking jestjs

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

但我需要知道Jest和其他单元测试库中的mocking和unmocking概念之间有什么区别.

谢谢

And*_*rle 5

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

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

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

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