有没有一种方法可以编写单元测试来检查我是否已成功Observable
取消订阅?
我正在使用ngx-auto-unsubscribe
。
示例:
@AutoUnsubscribe()
@Component
// Template and style urls
export class MyComp implements OnInit, OnDestroy {
mySub: Subscription;
constructor(private myService: MyService) { }
ngOnInit() {
this.myService.doSomething.subscribe(res => {
console.log(res);
})
}
ngOnDestroy() {
// Only used for AOT (ahead of time) compilation
}
}
答案 0 :(得分:1)
是的,有一种方法(即使我认为没有必要对此进行测试)。
我不会为您编写整个测试,但这是逻辑:
MockComponent
条件的父组件(我们将其称为ngIf
),以显示是否显示MyComp
。
const obsCleanUpFunction = jasmine.createSpy();
const obs$ = new Observable(observer => {
//following will be called when/if the observable if completed
return obsCleanUpFunction;
});
MockComponent
的组件MyComp
ngOnInit
内通过并订阅MockComponent
上,将显示MyComp
的条件设置为false-> ngIf
评估为false会破坏此条件toHaveBeenCalled