Jest中unmock和dontMock之间的区别

时间:2016-04-12 11:02:16

标签: javascript unit-testing jestjs

所以我一直在写一个成功的单元测试库,一切似乎都很好。然后我在一些在线示例中注意到我在哪里: -

jest.unmock('../lib/q');

其他人这样做: -

jest.dontMock('../lib/q');

我无法在Jest网站上找到任何文档(文档不是很好,但是说实话),所以我将我的一个套件更改为dontMock并且爆炸了很多......差异是什么?

1 个答案:

答案 0 :(得分:9)

这是covered in the Jest documentation

似乎我们现在都应该使用unmock来阻止将模拟者提升到ES6导入之上:

  

我正在使用babel,而我的unmocked导入无效?

     

jest-cli升级为0.9.0

     

<强>解释

jest.dontMock('foo');

import foo from './foo';
     

在ES2015中,导入语句在所有其他

之前被提升
var foo = require('foo'); jest.dontMock('foo'); // Oops!
     

在Jest 0.9.0中,引入了新的API jest.unmock。再加上一个   babel插件,现在使用babel-jest时会正常工作:

jest.unmock('foo'); // Use unmock!

import foo from './foo';

// foo is not mocked!
     

请参阅Getting Started指南,了解如何启用babel支持。