Javascript 单元测试rxjs 5

Javascript 单元测试rxjs 5,javascript,unit-testing,rxjs,Javascript,Unit Testing,Rxjs,所以我还是rxjs的新手 目前在我的代码库中使用tape js进行单元测试。我已经研究过大理石图测试,但它对我来说真的不合适 我的问题: 如何对使用rxjs可观察的搜索调用进行单元测试?我感兴趣的是断言_handleSearchResults函数是用可观察的完成函数调用的。类似地,如何测试可观察对象是否失败,调用_handleSearchError 此.searchSubject是一个接收主题 searchChanged(query) { this.searchSubject.next(

所以我还是rxjs的新手

目前在我的代码库中使用tape js进行单元测试。我已经研究过大理石图测试,但它对我来说真的不合适

我的问题: 如何对使用rxjs可观察的搜索调用进行单元测试?我感兴趣的是断言_handleSearchResults函数是用可观察的完成函数调用的。类似地,如何测试可观察对象是否失败,调用_handleSearchError

此.searchSubject是一个接收主题

searchChanged(query) {
    this.searchSubject.next(query);
}
搜索主题是用switchmap定义的,这正是调用searchChanged时我想要进行单元测试的内容

 this.searchSubject.switchMap(searchQuery => {
        return Rx.Observable.fromPromise(this._queryAutoComplete(searchQuery));
    })
    .subscribe(this._handleSearchResults.bind(this), this._handleSearchError.bind(this));

如果没有对测试要做什么的准确描述,这就太宽泛了。另外,
Rx.Observable.fromPromise
是多余的,因为传递给
switchMap
的投影函数可以返回一个promise。对不起,我已经更新了这个问题。我最感兴趣的是如何设置一个单元测试来监视订阅调用。“U handleSearchResults”和“U handleSearchError on error on error”。@OwenSikes来看看这个。可观察对象只是异步调用,因此您可以用与任何异步代码相同的方法测试它们。例如,在摩卡,这取决于queryAutoComplete的功能。你需要提供细节。有了这段代码,您可能只需要模拟queryAutoComplete,并提出一个无用的测试来检查switchMap是否工作。switchMap已经在rx中进行了测试。