Jasmine 模拟在目标类中实例化的类
我试图为类的函数编写一个Jasmine测试,该类实例化并观察另一个类中的对象。因为我想让这个测试包含在第一个类中,并模拟第二个类的不同场景,所以我想模拟第二个类。一些伪代码可能会有所帮助Jasmine 模拟在目标类中实例化的类,jasmine,karma-jasmine,Jasmine,Karma Jasmine,我试图为类的函数编写一个Jasmine测试,该类实例化并观察另一个类中的对象。因为我想让这个测试包含在第一个类中,并模拟第二个类的不同场景,所以我想模拟第二个类。一些伪代码可能会有所帮助 export class Foo { startProcessing() { const bar = new Bar(); const sub = bar.tickTock.subscribe( state => {
export class Foo {
startProcessing() {
const bar = new Bar();
const sub = bar.tickTock.subscribe(
state => {
// something went right
},
error => {
// something went wrong
}
);
}
}
我尝试在测试文件中声明mock类,并通过TestBed.configureTestingModule
的providers
属性提供它,但它始终使用原始条。
我如何编写一个测试来提供一个模拟类来代替我可以控制的
Bar
解决此问题的一种方法是通过函数参数(依赖项注入)传入Bar类型的对象。这样,您就可以控制条形图对象 我已经准备好了,但我觉得很脏。因为调用startProcessing
的地方只是构造newbar()
并每次传递它。如果可能的话,我希望函数更加独立。另一种方法是将创建新Bar对象的语句包装到新函数中。这样,您将保留当前startProcessing方法签名,同时在代码中创建一个位置,您可以通过模拟该函数来控制Bar对象的创建。