您好,以下是我遇到的問題:
但是在官方文件上面,它是將inject步驟提到了beforeEach,而我用官方的那種方法寫,它總是會顯示unknown ControllerProvider的錯誤,
一下是我依照官方文檔寫的程式碼:
describe('indexCtrl',function(){
var $controller;
beforeEach(module('controllers'));
beforeEach(inject(function(_controller_){
$controller = _controller_;
}));
describe('the add function should be right',function(){
it('should be 34',function(){
var $scope = {};
var controller = $controller('indexCtrl',{$scope: $scope});
$scope.add(14,20);
except(controller).toBeDefined();
except($scope.sum).toEqual(34);
})
})
})
一下是報的錯誤:
Error: [$injector:unpr] Unknown provider: controllerProvider <- controll
er
http://errors.angularjs.org/1.5.8/$injector/unpr?p0=controllerProvider%2
0%3C-%20controller
一下是我依照網路上某個實例修改過的程式碼:
it('add test', inject(function ($controller) {
var $scope = {};
//spec body
var indexCtrl = $controller('indexCtrl', {$scope: $scope});
expect(indexCtrl).toBeDefined();
expect($scope.add(2, 3)).toEqual(5);
}));
测试通过
不知道是什麼原因,照理說官網所給的不會有錯,這兩個代碼只是注入的順序不同而已。希望大家能幫忙