【发布时间】: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