【发布时间】:2021-02-10 12:43:03
【问题描述】:
在我的一个构造函数中,我实例化了另一个类,但是为了单独测试,我需要模拟另一个类构造函数的实现。我尝试了几种方法,但都无法做到这一点。
下面的示例显然不起作用,因为它没有模拟从 foo.js 导入,但希望它显示了我正在尝试做的事情
./foo.js
import Bar from './bar.js'
export default class Foo {
bar: undefined
constructor() {
this.bar = new Bar
}
}
./bar.js
export default class Bar {
constructor() {
console.log('i do not want this to run')
}
}
./foo.test.js
import Foo from './foo.js'
import Bar from './bar.js'
jest.mock('./bar.js', () => {
class BarMock {
constructor() {
console.log('i want this to run')
}
}
})
describe('Foo', () => {
it('should...', () => {
const foo = new Foo
expect(foo.bar).toBeInstanceOf(BarMock)
expect(Bar).toBeCalled()
})
})
【问题讨论】:
标签: javascript ecmascript-6 jestjs mocking