我正在尝试在一个小的NodeJS项目中进行一些依赖倒置。我想模拟个人类的实例,然后将其插入其他类中。
这是针对Lates节点和Jest版本的,我已经阅读了Jest文档,似乎没有什么是我想要的。
class A {
getStr(): string {
return "bob";
}
}
class B {
private a: A;
constructor(a: A){
this.a = a;
}
getA(): string {
return a.getStr();
}
}
const b = new B(mocked instance of A)
我希望能够与注入的模拟进行交互,并查看它是否在单元测试中被调用。
答案 0 :(得分:0)
假设您想监视A的功能,可以按照以下步骤进行操作(如果您想继续使用类符号):
class MockA {
constructor() {
this.getStr = jest.fn()
}
}
const mockedA = new MockA()
const b = new B(mockedA)
然后要测试它是否被调用,可以按照以下步骤进行操作:
b.getA();
expect(a.getStr.mock.calls.length).toBe(1)
要创建不带类的模拟,您可以按照以下步骤操作:
const mockedGetStr = jest.fn()
const b = new B({ getStr: mockedGetStr })
b.getA();
expect(a.getStr.mock.calls.length).toBe(1)