Jest 中 unmock 和 dontMock 的区别
Difference between unmock and dontMock in Jest
所以我一直在编写一个成功的单元测试库,一切看起来都很好。然后我在一些在线示例中注意到我这样做的地方:-
jest.unmock('../lib/q');
其他人这样做:-
jest.dontMock('../lib/q');
我在 Jest 网站上找不到任何文档(老实说,文档不是很好),所以我把我的一个套件换成了 dontMock
并且爆炸了很多。 ..有什么区别?
这是covered in the Jest documentation。
似乎我们现在都应该使用 unmock
来防止将模拟提升到 ES6 导入之上:
I'm using babel and my unmocked imports aren't working?
Upgrade jest-cli
to 0.9.0
.
Explanation:
jest.dontMock('foo');
import foo from './foo';
In ES2015, import statements get hoisted before all other
var foo = require('foo'); jest.dontMock('foo'); // Oops!
In Jest 0.9.0, a new API jest.unmock
was introduced. Together with a
plugin for babel, this will now work properly when using babel-jest
:
jest.unmock('foo'); // Use unmock!
import foo from './foo';
// foo is not mocked!
See the Getting Started guide on how to enable babel support.
所以我一直在编写一个成功的单元测试库,一切看起来都很好。然后我在一些在线示例中注意到我这样做的地方:-
jest.unmock('../lib/q');
其他人这样做:-
jest.dontMock('../lib/q');
我在 Jest 网站上找不到任何文档(老实说,文档不是很好),所以我把我的一个套件换成了 dontMock
并且爆炸了很多。 ..有什么区别?
这是covered in the Jest documentation。
似乎我们现在都应该使用 unmock
来防止将模拟提升到 ES6 导入之上:
I'm using babel and my unmocked imports aren't working?
Upgrade
jest-cli
to0.9.0
.Explanation:
jest.dontMock('foo'); import foo from './foo';
In ES2015, import statements get hoisted before all other
var foo = require('foo'); jest.dontMock('foo'); // Oops!
In Jest 0.9.0, a new API
jest.unmock
was introduced. Together with a plugin for babel, this will now work properly when usingbabel-jest
:jest.unmock('foo'); // Use unmock! import foo from './foo'; // foo is not mocked!
See the Getting Started guide on how to enable babel support.