在应用程序中添加运行块后,单元测试中断

时间:2015-09-23 09:30:44

标签: angularjs unit-testing

在我的应用程序中添加一个运行块来处理来自配置的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事件处理不再有效。

任何人都可以给我一些指导吗? 感谢

0 个答案:

没有答案