javascript - Jest 中 mock 和 unmock 测试的区别

标签 javascript unit-testing testing mocking jestjs

最近我熟悉了 Jest 库和单元测试概念,由于 jest 的文档,我的代码中的一切都正确。

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

谢谢

最佳答案

Mock 意味着用另一个实例替换一个实例。 Jest 说,它用于用您自己的模块替换导入模块的实现。

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

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

unmock 功能是 automock 功能的原因,这是过去的默认设置。 Automocking 将用默认模拟替换所有导入的模块。因为这对某些模块有意义,但对于 lodash 来说是不需要的,例如你可以取消对它们的模拟。因此,在打开 automock 的情况下,大多数情况下都需要取消模拟,以便在需要时获得原始实现。

关于javascript - Jest 中 mock 和 unmock 测试的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41088267/

相关文章:

javascript - AngularJS 中的嵌套表单

angularjs - 如何使用 DOM 操作正确地对指令进行单元测试?

scala - 使用 ScalaTest 中的 ScalaFutures 与 Await.result 的优势

java - 用于 IntelliJ 多线程测试的 Java 工具

javascript - 计算当前坐标和坐标列表之间的距离

javascript - 我的 JS setTimeout() 参数有什么问题

c++ - QT : Cannot find moc file

c# - 如何模拟 StoredProcedureResponse

testing - 在 Appium 中按下 android 菜单按钮

javascript - Highcharts 和 Angularjs : update chart from $broadcast in the main controller doesn't update the chart like a $watch would in the chart's controller