【问题标题】:How should I test that an observable throws an error?我应该如何测试 observable 是否引发错误?
【发布时间】:2019-04-29 17:03:04
【问题描述】:

我应该如何测试 observable 是否抛出错误?

const target = () => 
  Observable.of(1)
    .map(() => Observable.throw('an error'));

我尝试了以下方法来检查 Jasmine 的错误:

expect(target().subscribe(x => x)).toThrow();

let failingFunction = () => target;
expect(() => failingFunction).toThrow();

target.subscribe(() => null, err => expect(err).toBeDefined());

【问题讨论】:

  • 就不能简单的使用observable API来捕捉错误,然后以此为基础测试通过还是失败?

标签: javascript unit-testing error-handling jasmine observable


【解决方案1】:

你可以这样做吗?

it('should throw an error', (done) => {
  target()
    .next(fail)
    .catch((err) => {
      expect(err).toBe('an error');
      done();
    });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    相关资源
    最近更新 更多