【问题标题】:Jest: avoiding manual mock code duplication笑话:避免手动模拟代码重复
【发布时间】:2020-01-15 08:51:42
【问题描述】:

使用微服务基础架构。 需要模拟我从 package-json 导入的一个,它指向一个私有 npm 模块。

通过在 mocks 目录中创建手动模拟,我在我的一个存储库中模拟了该模块,并且效果很好。

但是现在,对于使用该模块的所有其他存储库,我将不得不将相同的模拟复制到他们的 mocks 目录中,以确保 jest 使用模拟版本而不是实际的模块代码。

有什么方法可以让我将 mock 放在 npm 模块本身并将每个 repo 指向 npm 模块的 mock,这样我就不必在所有使用该依赖项的 repos 中复制一堆代码?

【问题讨论】:

    标签: node.js unit-testing mocking jestjs microservices


    【解决方案1】:

    您可以直接在模块中提供模拟代码。它 will not be 自动加载,就像在你的源根目录中使用 __mocks__ 开玩笑一样,但你仍然可以在你的测试中模拟 import

    import mockedMyModule from "yourmodule/mock.js";
    
    jest.mock("yourmodule/index.js", () => mockedMyModule);
    

    或者你也可以创建src/__mocks__/yourmodule.js

    import mockedMyModule from "yourmodule/mock.js";
    
    export default mockedMyModule;
    

    所以自动模拟将起作用。

    【讨论】:

      猜你喜欢
      • 2019-06-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多