2013-04-07 2 views
2

내가 https://github.com/angular/angular-seed테스트 각도 컨트롤러 ('을 myApp'). 컨트롤러 (

으로 장난하고이 컨트롤러는 응용 프로그램에 정의되어 있습니다 /이

'use strict'; 
function MyCtrl1() {} 
MyCtrl1.$inject = []; 

같은 controllers.js이 아무튼 MyCtrl1가 내 전역 목록에 응용 프로그램/app.js에 언급되지 않는 '는 t는 jshint 전달합니다.

Brian Ford 다른 사람에 따라 내가 선호하는 스타일이

입니다 읽고
angular.module('myApp').controller('MyCtrl1', [], function() {}); 

는 전역 범위에없는 나는이 더 좋아하지만,이 더 이상 작동하지 않기 때문에 지금 내 testacular 사양 실패 :

var myCtrl1; 
beforeEach(function(){ 
    myCtrl1 = new MyCtrl1(); 
}); 

을 내가 정의이 컨트롤러에 대한 참조를 얻는 방법 테스트 목적으로 "선호"스타일로?

+1

이 내가 [여기] anwsered 한 동일한 문제 (http://stackoverflow.com/questions이 될 수 있습니다/15799853/angularjs-testing-controller/15801116 # 15801116)'beforeEach (module ('myApp')); ' – Xesued

답변

3

신용을 시도해보십시오

beforeEach(module('myApp')); 
var scope, ctrl; 
beforeEach(inject(function($controller, $rootScope) { 
    scope = $rootScope.$new(); 
    ctrl = $controller('MyCtrl1', {$scope: scope}); 
})); 
0

는 Javito 및 Xesued 모두에 의한,

beforeEach(inject(function($controller) { 
    scope = {};  
    MyCtrl1 = $controller('MyCtrl1', { 
     $scope: scope 
    }); 
    })); 
+0

을 추가해야합니다. 실제 범위가 필요하며 beforeEach는 Xesued에서 제안한대로 필요합니다. 코멘트. 코드가 여기에서 작동하지 않는다면, 내가 직접 대답해야 할 것 같다. 미안 해요, 당신에게 신용을주고 싶었어요. ( – user2240431