这是一个显示问题的plunker:
http://plnkr.co/edit/J8zRIj?p=preview
这是一个在 scripts.js 和 scripts.spec.js 中都注释掉了错误的 plunker,我不再收到 $digest 错误:
http://plnkr.co/edit/jCRlwf?p=preview
当错误不在 $http 请求的回调中时,抛出和测试错误似乎有效。任何人都知道为什么这可能不起作用?
这是一个显示问题的plunker:
http://plnkr.co/edit/J8zRIj?p=preview
这是一个在 scripts.js 和 scripts.spec.js 中都注释掉了错误的 plunker,我不再收到 $digest 错误:
http://plnkr.co/edit/jCRlwf?p=preview
当错误不在 $http 请求的回调中时,抛出和测试错误似乎有效。任何人都知道为什么这可能不起作用?
问题是模拟 $exceptionHandler 服务默认重新抛出异常。因此,您的异常导致 $rootScope.$apply 在中间中止。
一种解决方案是将模拟 $exceptionHandlerProvider 切换到“日志”模式,然后检查 $exceptionHandler.errors。见这里。