我正在尝试为我没有编写的使用 的代码编写测试。 ui路由器 .
我想不出一种将 Controller 注入(inject)我的测试的方法,因为它是在另一个 Controller 中配置的状态内内联和匿名编写的:
$scope.deleteSomething = function() {
$modal.open(
templateUrl: '/delete-item-modal.html',
controller: ['$scope', '$modalInstance', 'someService',
function($scope, $modalInstance, someService) {
....
}
],
resolve: {
...
}
});
};
如果 Controller 被命名为
controller: 'TheController'
通过在我的测试中这样做,我可以毫无问题地注入(inject)它:beforeEach(inject(function($controller) {
$controller('TheController', {/*dependancies to be injected*/});
}));
但由于 Controller 是匿名的,我没有它的句柄,也不知道如何访问它。
最佳答案
这是一个站不住脚的情况。您应该对准备修改的代码进行单元测试,以防止回归。如果您无法在当前状态下对其进行单元测试,那么您唯一的选择就是对其进行集成测试。
向请求工作的人解释:
这就是我要做的。
关于AngularJS- 对匿名 Controller 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26550673/