Angular 角度单元测试中可观测subscribe()和add()方法的监视
我的testComponent中有一个方法,它返回一个已订阅且在取消订阅之后的observable,然后它在.add()中运行代码(即,当取消订阅时) 我如何监视这个方法,并观察在调用subscribe方法时以及从订阅中取消订阅add()方法时发生的操作。谢谢 下面是代码示例Angular 角度单元测试中可观测subscribe()和add()方法的监视,angular,unit-testing,jasmine,angular2-observables,rxjs-observables,Angular,Unit Testing,Jasmine,Angular2 Observables,Rxjs Observables,我的testComponent中有一个方法,它返回一个已订阅且在取消订阅之后的observable,然后它在.add()中运行代码(即,当取消订阅时) 我如何监视这个方法,并观察在调用subscribe方法时以及从订阅中取消订阅add()方法时发生的操作。谢谢 下面是代码示例 const loading; const done; const error; onClick() { this.loading = true; this.myService.processData(someV
const loading;
const done;
const error;
onClick() {
this.loading = true;
this.myService.processData(someValues)
.subscribe(
result => {
this.done = true;
},
error => {
this.error = true;
} )
.add(() => { this.loading = false })
}
我需要一种方法来观察subscribe()和add()块中发生的事情 你的“测试对象”就是方法本身
你调用它,然后检查结果
从我看来,您应该关心的结果是,是否有某个“间接输出”,即此项下的所有内容都发生了更改
这是你的输出,它是由某个输入引起的
在结果的情况下,您需要“下一步”从可观察对象中获取一个新值,您应该使用
在出现错误的情况下,同样的事情-只需调用spy observable上的throwWith()
(同样,使用jasmine auto spies)
至于add,从这段代码来看,似乎没有任何东西在调用订阅上的unsubscribe
方法,因此在这种情况下将永远不会调用add逻辑
您需要在代码中以某种方式触发该操作,以便对其进行测试(可能在ngOnDestory
上),您的“测试对象”就是方法本身
你调用它,然后检查结果
从我看来,您应该关心的结果是,是否有某个“间接输出”,即此项下的所有内容都发生了更改
这是你的输出,它是由某个输入引起的
在结果的情况下,您需要“下一步”从可观察对象中获取一个新值,您应该使用
在出现错误的情况下,同样的事情-只需调用spy observable上的throwWith()
(同样,使用jasmine auto spies)
至于add,从这段代码来看,似乎没有任何东西在调用订阅上的unsubscribe
方法,因此在这种情况下将永远不会调用add逻辑
您需要在代码中以某种方式触发该操作,以便对其进行测试(可能在ngOnDestory