【发布时间】:2021-09-03 15:41:57
【问题描述】:
我有代码要尝试用 Jest 进行测试。我有一个 ES6 类,我们称之为ClassA。在我的测试文件中,我正在模拟 ClassA 如下:
const mockGetCheapestProductAllPages = jest.fn()
const ClassA = require('../src/ClassA/ClassA')
jest.mock('../src/ClassA/ClassA', () => {
return jest.fn().mockImplementation(() => {
return { getCheapestProductAllPages: mockGetCheapestProductAllPages }
})
})
这种语法对于模拟类非常有效。我可以很好地监视getCheapestProductAllPages,并从中模拟返回值等。问题是,由于某种原因,我无法监视构造函数。在Jest documentation on mocking ES6 classes 中,暗示您可以只引用导入的类来监视构造函数,如下所示:
expect(ClassA).toHaveBeenCalled()
不幸的是,这对我不起作用。我知道在我的测试中调用了构造函数,但 Jest 告诉我它被调用了 0 次。有什么建议/看起来有什么问题吗?尝试仅共享相关代码,但如果您还需要查看其他内容,请告诉我。谢谢!
【问题讨论】:
标签: javascript jestjs mocking