加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJS-单元测试匿名控制器

发布时间:2020-12-17 18:03:49 所属栏目:安全 来源:网络整理
导读:我正在尝试编写我没写过的使用ui-router的代码的测试. 我无法找到一种方法将控制器注入我的测试,因为它是在另一个控制器中配置的状态内内联和匿名编写的: $scope.deleteSomething = function() { $modal.open( templateUrl: '/delete-item-modal.html',cont
我正在尝试编写我没写过的使用ui-router的代码的测试.

我无法找到一种方法将控制器注入我的测试,因为它是在另一个控制器中配置的状态内内联和匿名编写的:

$scope.deleteSomething = function() {
  $modal.open(
    templateUrl: '/delete-item-modal.html',controller: ['$scope','$modalInstance','someService',function($scope,$modalInstance,someService) {
        ....
      }
    ],resolve: {
      ...
    }
  });  
};

如果控制器的命名类似于控制器:’TheController’我可以通过在我的测试中这样做来注入它:

beforeEach(inject(function($controller) {
  $controller('TheController',{/*dependancies to be injected*/});
}));

但由于控制器是匿名的,我没有处理它,也无法弄清楚如何访问它.

解决方法

这是一个站不住脚的局面.您应该对您准备修改的代码进行单元测试,以防止出现回归.如果您无法在当前状态下对其进行单元测试,那么您唯一的选择就是对其进行集成测试.
向请求工作的人解释:

>您必须在修改代码之前为代码编写测试.
>集成测试需要更长时间,但由于代码结构的原因,这是唯一可行的.
>通过提取命名控制器进行重构是一种复制粘贴和低风险.
>命名控制器可以轻松进行单元测试.

这就是我要做的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读