Angular和Rxjs:写入单元测试以过滤Subject

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Angular和Rxjs:写入单元测试以过滤Subject相关的知识,希望对你有一定的参考价值。

我在Angular服务中有一个方法如下,但我不知道如何为这个函数编写单元测试。谁能帮我这个 ?谢谢

message$: Subject<Message> = new Subject<Message>()
getMessage<T>(channel: string): Observable<T> {
    return this.message$.asObservable()
      .filter(m => m.channel === channel)
      .map(m => m.data)
}
答案

这是伪代码。实际代码留作练习。

Create an instance of the service
call getMessage('foo')
subscribe to the returned observable
store every event you receive in a variable receivedEvent

emit a message with the channel 'bar' from the subject
check that receivedEvent is still null

emit a message with the channel 'foo' from the subject
check that receivedEvent contains the data of the message you just emitted

以上是关于Angular和Rxjs:写入单元测试以过滤Subject的主要内容,如果未能解决你的问题,请参考以下文章

RxJS之过滤操作符 ( Angular环境 )

如何从 rxjs 流中过滤单个值以在 Angular 2 组件中打印

Angular使用总结 --- 搜索场景中使用rxjs的操作符

如何在 Angular 中使用 Jasmine 测试 RxJS switchMap?

如何为combineLatest rxjs Angular编写Jasmine Unit测试用例

更新到 Angular 6 和 rxjs 6 后 Plunker 坏了