gpt4 book ai didi

javascript - 如何使用 ngx-auto-unsubscribe 测试我是否已取消订阅?

转载 作者:行者123 更新时间:2023-11-30 20:10:07 26 4
gpt4 key购买 nike

有没有一种方法可以编写单元测试来检查我是否已成功取消订阅我的 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
}
}

最佳答案

是的,有办法(尽管我认为没有必要测试它)。

我不会为您编写整个测试,但逻辑如下:

  • 在您的测试中使用基本的 ngIf 条件创建一个父组件(让我们称它为 MockComponent)以显示或不显示您的 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 销毁假的
  • 期待 Jasmine spy toHaveBeenCalled

关于javascript - 如何使用 ngx-auto-unsubscribe 测试我是否已取消订阅?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52495835/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com