首页 > 解决方案 > 在单元测试中处理 Angular 错误的问题

问题描述

我仍然在加快 Angular 的速度。我搜索并发现很少。最有帮助的是:如何编写一个期望在 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');

结果相同。

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

标签: angulartypescriptunit-testingjasmine

解决方案


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

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


推荐阅读