我想測試一個控制器。測試有很多依賴的角度控制器
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
作爲最低限度,但它似乎沒有正確創建我的控制器。
「我有兩個我補充說,這就是爲什麼他們在那裏」 ......對不起,我不知道我理解這個問題。你能更清楚地陳述它嗎? – mgilson
你嘗試了什麼? –
@GonzaloPincheiraArancibia - 我添加了更多細節。基本上在beforeEach MyController對象沒有屬性或功能。 –