【发布时间】:2020-12-06 17:27:21
【问题描述】:
我有一个 typeguard 可以检查依赖项的实例。
private isObjectOfA(obj: A | B ): obj is A {
return obj instanceof A;
}
在 spec 文件中,我模拟了 A 类。
jest.mock('./my-package/a', () => {
return {
A: jest.fn().mockImplementation(() => {
return {
someMethod: jest.fn()
};
})
};
});
import { A } from './my-package/a';
现在在测试期间,isObjectOfA 总是返回 false(因为在测试中 obj 的实例返回为“Object”而不是“A”。可能是由于模拟 ??)。有没有办法克服这个问题?
对象创建的代码如下所示,
this.myObj = someCondition ? new A() : new B();
【问题讨论】:
-
为什么要向这个函数传递一个模拟?
-
@felixmosh,
A类本身非常复杂,并且有单独的测试用例。我不想测试任何关于A的东西,只是为了在这里隔离我的单元测试用例 -
据我了解,您不会测试 A 类,而是使用它的其他方法...
标签: typescript unit-testing jestjs