【问题标题】:Issues handling Angular error in unit test在单元测试中处理 Angular 错误的问题
【发布时间】:2019-10-04 14:29:08
【问题描述】:

我仍在学习 Angular。我搜索并发现很少。最有帮助的是:How to write a test which expects an Error to be thrown in Jasmine?

这是我阅读以上帖子后的问题。

我正在对一个引发错误的方法进行单元测试。我想捕捉错误,以便我知道单元测试是成功的。这是我的函数调用:

        expect(function(){instance.selectMember(event);}).toThrow();

以及产生错误的那一行:

        throw new Error('member not found: ' + member.id);

我得到的如下

Expected function to throw an Error.

接着是:

Failed: member not found: 42
Error: member not found: 42

所以它失败了,因为它没有收到错误,但随后显示错误???

我也试过了:

        expect(function(){instance.selectMember(event);}).toThrow(new Error('member not found: 42'));

        expect(function(){instance.selectMember(event);}).toThrowError('member not found: 42');

结果相同。

我如何知道我的单元测试正确触发了错误?

【问题讨论】:

  • 你能发布 selectMember() 代码吗?里面有没有做异步工作?
  • @Ismail 啊,异步工作。是的。那就是问题所在。感谢您的输入。请张贴作为答案,以便我给你信用。

标签: angular typescript unit-testing jasmine


【解决方案1】:

如果您的方法做了一些异步工作,那么您应该以不同的方式进行测试,例如使用fakeAsynctick() 来存根异步。

如果你用方法代码更新你的问题,我可以给你更详细的答案。

【讨论】:

  • 是的。我想我还没有完全内化这一点。感谢您向我指出。
猜你喜欢
  • 1970-01-01
  • 2022-01-04
  • 2022-07-21
  • 1970-01-01
  • 2014-09-13
  • 1970-01-01
  • 2018-10-03
  • 1970-01-01
  • 2015-11-17
相关资源
最近更新 更多