这是一个显示问题的 plunker:
http://plnkr.co/edit/J8zRIj?p=preview
这是一个 plunker,在 scripts.js 和 scripts.spec.js 中都注释掉了错误,我再也没有收到 $digest 错误:
http://plnkr.co/edit/jCRlwf?p=preview
当错误不在 $http 请求的回调中时,抛出和测试错误似乎有效。任何人都知道为什么这可能不起作用?
最佳答案
问题是 mock $exceptionHandler 服务默认会重新抛出异常。所以你的异常导致 $rootScope.$apply 在中间中止。
一个解决方案是将模拟 $exceptionHandlerProvider 切换到“日志”模式,然后检查 $exceptionHandler.errors。 See here .
关于unit-testing - 在 $http 的错误函数中抛出错误导致 $digest 已经在单元测试中进行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17593767/