【问题标题】:Difference between unmock and dontMock in JestJest 中 unmock 和 dontMock 的区别
【发布时间】:2016-04-12 11:02:15
【问题描述】:

所以我一直在编写一个成功的单元测试库,一切看起来都很好。然后我在一些在线示例中注意到我这样做的地方:-

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

其他人这样做:-

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

我在 Jest 网站上找不到任何文档(说实话,文档不是很好),所以我将我的一个套件更改为 dontMock 并且相当多...区别?

【问题讨论】:

    标签: javascript unit-testing jestjs


    【解决方案1】:

    这是covered in the Jest documentation

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

    我正在使用 babel,但我的 unmocked 导入不起作用?

    jest-cli 升级为0.9.0

    说明:

    jest.dontMock('foo');
    
    import foo from './foo';
    

    在 ES2015 中,import 语句在所有其他语句之前被提升

    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 支持。

    【讨论】:

    猜你喜欢
    • 2017-04-26
    • 2021-12-04
    • 2019-10-12
    • 2020-04-09
    • 2017-07-25
    • 2015-11-10
    • 2017-12-24
    • 2018-01-28
    • 2020-01-28
    相关资源
    最近更新 更多