所以我一直在写一个成功的单元测试库,一切似乎都很好。然后我在一些在线示例中注意到我在哪里: -
jest.unmock('../lib/q');
其他人这样做: -
jest.dontMock('../lib/q');
我无法在Jest网站上找到任何文档(文档不是很好,但是说实话),所以我将我的一个套件更改为dontMock
并且爆炸了很多......差异是什么?
答案 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支持。