如何在__mocks__文件夹中使用模拟文件在ES6类中手动模拟方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在__mocks__文件夹中使用模拟文件在ES6类中手动模拟方法?相关的知识,希望对你有一定的参考价值。

我在ES6类中尝试手动模拟方法,在__mock__folder中创建手动模拟文件。但模拟文件根本不起作用。这是我的项目:

├── __mocks__
│   └── MockTestDependency.js
├── MockTestDependency.js
└── MockTest.test.js

./mock test dependency.就是:

export default class MockTestDependency {
    addAction(value1, value2) {
        return value1 + value2
    }
}

./__mocks__/mock test dependency.就是:

export default {
    addAction: jest.fn((value1, value2) => {
        return value1 + value2 + 1
    })
}

./mock test.test.就是:

import MockTestDependency from "./MockTestDependency"

beforeAll(() => {
    jest.mock('./MockTestDependency')
})

describe('mock test', () => {
    it('first case', () => {
        let mockTestDependency = new MockTestDependency()
        expect(mockTestDependency.addAction(1, 2)).toBe(4)
    })
})

任何帮助,将不胜感激。

答案

jest.mock('./MockTestDependency')应该在beforeAll之前调用,就在进口之后。

它将被提升到代码块的顶部,实际上在任何导入之前调用(这是必要的工作)。当它在beforeAll内部时,在外部依赖已经加载后调用它。

以上是关于如何在__mocks__文件夹中使用模拟文件在ES6类中手动模拟方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何开玩笑地模拟文件夹中的所有文件

笑话:如何正确模拟节点模块?

如何模拟在同一文件中定义但未被测试方法导入的函数?

Python unittest mock:是不是可以在测试时模拟 __init__ 的默认参数的值?

开玩笑地从模拟文件中窥探模拟函数

mock的使用_