在我的应用程序中添加一个运行块来处理来自配置的ui-router的$ stateChangeError事件后,我面临的问题是我的所有单元测试都失败了。
测试全部因为同样的原因而失败,因为对我从ui-router配置中的默认状态加载的页面发出意外请求。
注释掉运行块可以让所有测试再次通过。
当app运行时,$ stateChangeError事件处理按预期工作。
那么我怎样才能在测试中处理这个运行块?如果我可以提供帮助,我不想在我的所有测试中为我的默认路由添加额外的expectGET - 除非我别无选择?
我确实遇到过这个post,其中讨论了将运行块移动到另一个模块以阻止它干扰测试。
angular.module('app', ['ui.router', 'restangular', 'ui.bootstrap']);
angular.module('app-start', ['app']).run(function($rootScope, $state) {
return $rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) {
return $state.reload();
});
});
我尝试了这个并且我的测试通过了,但是当应用程序运行时,我添加的$ stateChangeError事件处理不再有效。
任何人都可以给我一些指导吗? 感谢