angular - 在单元测试中处理 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');
结果相同。
我怎么知道我的单元测试正确触发了错误?
解决方案
如果您的方法做了一些异步工作,那么您应该以不同的方式进行测试,例如使用fakeAsync
和tick()
存根异步。
如果您使用方法代码更新您的问题,我可以给您更详细的答案。
推荐阅读
- java - 无法使用 selenium webdriver 启动 chrome 浏览器
- angular - ag-grid 中的自定义过滤器在 Angular 10 应用程序中不起作用
- python - “GET”请求在 Python 中工作,但在机器人框架中不起作用
- swift - Swift 控制台打字动画
- r - glmmTMB 警告信息
- php - 如何使用名称、日期和数量对数组进行排序?PHP
- php - 如果为空,则归档 Acf 数值 显示消息
- firebase - 限制 Google Firebase 对特定 HTTP 引荐来源网址的访问
- jsf - Quarkus 和 Primefaces 无法让 PrettyFaces 运行
- wordpress - 使用 AJAX 调用更新自定义字段后,Wordpress 更新 CustomFields 部分