小编chi*_*hab的帖子

使用 Jasmine Marbles 的 RxJS 测试捕获运算符总是失败

我想测试一下,如果一个 observable 从它的一个操作符内部捕获到一个抛出的错误,我会得到预期的结果 observable。

下面的服务返回一个 observable,根据其错误参数是否抛出错误。

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/merge';
import 'rxjs/add/operator/do';
import 'rxjs/add/observable/of';

export function service(obs1: Observable<number>, obs2: Observable<number>, error: boolean = false) {
  return obs1.merge(obs2)
    .map((elt) => elt * 2)
    .do(() => {
      if (error) {
        throw new Error();
      }
    })
    .catch(() => Observable.of(0));
}
Run Code Online (Sandbox Code Playgroud)

有了这个茉莉花测试

import { cold } from 'jasmine-marbles';
import { Observable } from 'rxjs/Observable';
import { service } from './catch';

describe('Test Marbles', () => {
  it('should …
Run Code Online (Sandbox Code Playgroud)

jasmine rxjs jasmine-marbles

0
推荐指数
1
解决办法
1840
查看次数

标签 统计

jasmine ×1

jasmine-marbles ×1

rxjs ×1