我的testComponent中有一个方法,该方法返回一个已订阅并在取消订阅后的可观察对象,然后它在.add()中运行代码(即,当取消订阅时)。
我如何监视此方法,并观察调用subscribe方法时的行为以及当从订阅中取消订阅时的add()方法时发生的行为。谢谢
这里是代码示例
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()块中发生的情况。
答案 0 :(得分:0)
您的“被测对象”就是方法本身。
您调用它,然后检查结果。
从我看来,您应该关注的结果是是否存在某个“间接输出”,即this.
下的所有内容都已更改。
这是您的输出,它是由某个输入引起的。
对于结果,您需要从Observable中“下一步”一个新值,应使用jasmine-auto-spies对其进行监视。
如果发生错误,请执行相同操作-只需在可观察到的间谍上调用throwWith()
(再次使用茉莉花自动间谍程序即可)。
对于添加,从这段代码看来,没有任何事情在订阅上调用unsubscribe
方法,因此在这种情况下永远不会调用添加逻辑。
您需要以某种方式在代码中触发该操作,以便对其进行测试(也许在ngOnDestory