首頁  >  問答  >  主體

angular.js - angular-test的inject時總是出現[$injector:unpr] Unknown provider問題

您好,以下是我遇到的問題:
但是在官方文件上面,它是將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);
 }));
    测试通过

不知道是什麼原因,照理說官網所給的不會有錯,這兩個代碼只是注入的順序不同而已。希望大家能幫忙

滿天的星座滿天的星座2737 天前586

全部回覆(1)我來回復

  • 某草草

    某草草2017-05-15 17:10:32

    我也是這個問題,請問,哪裡出了問題,是怎麼解決的?

    回覆
    0
  • 取消回覆