我正在尝试为类函数编写一个Jasmine测试,该函数实例化并观察来自另一个类的对象。由于我想将此测试包含在第一类中并模拟第二类的不同场景,因此我想模拟第二类。一些伪代码可能会有所帮助
export class Foo {
startProcessing() {
const bar = new Bar();
const sub = bar.tickTock.subscribe(
state => {
// something went right
},
error => {
// something went wrong
}
);
}
}
我尝试在我的测试文件中声明模拟类,并通过TestBed.configureTestingModule
的providers
属性提供它,但它总是使用原始的 Bar。 如何编写一个测试来提供模拟类来代替我可以控制的Bar
?
解决此问题的一种方法是通过函数参数(依赖注入(传入 Bar 类型的对象。这样您就可以控制 Bar 对象。