【发布时间】:2016-07-24 12:10:16
【问题描述】:
我正在尝试测试控制器。
someModule.controller('MyController', function($rootScope, $scope, dep1, dep2) {
...
$scope.aMethod = function() {
...
}
function bMethod() {
...
}
...
}]);
我这样定义我的测试:
beforeEach(inject(function ($controller, $rootScope) {
scope = $rootScope.$new();
console.log($controller);
MyController = $controller('MyController', {
$rootScope : $rootScope,
$scope: scope
});
console.log('Some debug message');
console.log(MyController);
}));
我得到这个输出:
LOG: function (expression, locals, later, ident) { ... }
LOG: 'Some debug message'
LOG: {}
即使我输入dep1 和dep2,我也会得到相同的结果。所以scope 和rootScope 必须存在,否则运行时会出错。
我不确定为什么这不起作用,因为最后一个输出是空的,所以控制器中没有任何功能,这是错误的。
我想至少测试一下bMethod,但它似乎没有正确创建我的控制器。
【问题讨论】:
-
“我必须拥有我添加的两个,这就是它们存在的原因”......对不起,我不确定我是否理解这个问题。你能说得清楚一点吗?
-
@GonzaloPincheiraArancibia - 我添加了更多细节。基本上在 beforeEach 中的 MyController 对象没有任何属性或功能。
标签: angularjs unit-testing dependency-injection karma-jasmine