javascript - 在 Jest 中模拟导入

标签 javascript jestjs

我有以下测试:

const mockedObject = {
    mockedMethod: jest.fn((someKey, someValue) => {
        return {someKey: 'someValue'}
    })
};

jest.doMock('../myObject', () => {
    return mockedObject;
});


testedObject.testedMethod();
expect(mockedObject.mockedMethod).toHaveBeenCalled();

在这里,在 testedObject 中,我导入 myObject。我想模拟该导入并传递 mockedObject

查看this question后和 this question ,我认为上面的代码应该很好,但是即使 testedObject 正在进行调用,mockedObject.mockedMethod 也永远不会被调用。

那么这个测试中的模拟有什么问题吗?

最佳答案

你打电话

testedObject.testedMethod()

但是期待

mockedObject.mockedMethod)

试试这个代码:

const mockedObject = {
    testedMethod: jest.fn((someKey, someValue) => {
        return {someKey: 'someValue'}
    })
};

jest.doMock('../myObject', () => {
    return mockedObject;
});


testedObject.testedMethod();
expect(mockedObject.testedMethod).toHaveBeenCalled();

关于javascript - 在 Jest 中模拟导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48369003/

相关文章:

javascript - 在 html url 中添加 javascript 日期时间

javascript - 没有时间戳值的 JS 日期对象错误地返回一天

node.js - 无法在 Jest 测试中使用构造函数创建 Pool 实例

jestjs - 在 docblock 中设置自定义 Jest 环境

javascript - Webpack 导入没有扩展名的文件在 HMR(热模块替换)中输出更改不正确

javascript - 将多个抓取数据存储在一个数组中

javascript - 如何在文本区域内添加标签?

javascript - 类型错误 : undefined is not an object (evaluating 'appState.remove' )

react-native - 为 Jest 模拟 Reactotron

javascript - Jest --runTestsByPath 两个或多个不同的路径