【问题标题】:How manual mock methods in ES6 class by using mock file in __mocks__ folder?如何使用 __mocks__ 文件夹中的模拟文件在 ES6 类中手动模拟方法?
【发布时间】:2018-03-01 20:49:40
【问题描述】:

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

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

./MockTestDependency.js:

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

./__mocks__/MockTestDependency.js:

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

./MockTest.test.js:

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)
    })
})

任何帮助将不胜感激。

【问题讨论】:

    标签: mocking jestjs


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-03-14
      • 2019-08-29
      • 1970-01-01
      • 2020-11-06
      • 2022-11-07
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多