2016-06-23 82 views
1

我想設置我的業力測試,但我有一個問題讓我的測試運行。我有我的測試寫成這樣業力控制器注入錯誤

describe("Test Controller", function() { 
    beforeEach(module('thisApp')); 
    var $controller; 
    var x = 1; 
    beforeEach(inject(function(_$controller_) { 
    $controller = _$controller_; 
    })); 

    it('should work', function() { 
    expect(x).toEqual(1); 
    }); 

}); 

,但我得到一個錯誤

Test Controller should work FAILED 
.../node_modules/angular/angular.js:4631:53 
[email protected]/Users/.../node_modules/angular/angular.js:322:24 
[email protected]/Users/.../node_modules/angular/angular.js:4591:12 
[email protected]/Users/.../node_modules/angular/angular.js:4513:30 
[email protected]/Users/.../node_modules/angular-mocks/angular-mocks.js:3067:60 

我的conf文件包括這些文件

files: [ 
     'node_modules/angular/angular.js', 
     'node_modules/angular-mocks/angular-mocks.js', 
     'app/app.js', 
     'app/controllers/*.js', 
     'app/test/unit/*.spec.js' 
    ], 

如果我刪除beforeEach(注入。 ..)然後我的測試會運行,並說成功,但它包含它時會給我這個錯誤。

我錯過了什麼?

回答

0

控制器注入代碼應該是這樣的。

var controller; 
beforeEach(inject(function($rootScope, $controller) { 
     scope = $rootScope.$new(); 
     controller = $controller('TestController', { 
      $scope: scope 
      //Inject more dependencies if you want to 
     }); 
    }));