首页 > 解决方案 > 在 Angular 中将 BehaviorSubject 测试为 Observable - Jasmine

问题描述

我是测试的新手,我在测试以下代码时遇到了麻烦:

ngOnInit() {
    ... some piece of code
    this.dataService.currentUserDataObservable.pipe(
      takeUntil(this.ngUnsubscribe)
    ).subscribe(
      currentUserData => {
        this.currentUser = currentUserData;
      }
    );
}

该变量this.currentUser将用于根据其属性显示按钮。该变量currentUserDataObservable是一个 BehaviorSubject.asObservable()。当用户登录时,dataService 中的 currentUserDataSubject 将调用其下一个函数来发送 currentUserData。

我想编写一个测试来检查当属性为真时是否显示按钮(类似于this.currentUser.showButton == true)以及另一个测试来检查其他情况。

这样做的正确方法是什么。我阅读了一些关于 spyOn、fakeAsync 的文章,但我无法针对这种特定情况进行重现。

谢谢

标签: angularunit-testingtestingjasmine

解决方案


推荐阅读