2014-09-21 2 views
0

내 코너 스크립트는 다음과 같습니다 설정할 수 없습니다

var app = angular.module("myApp", []); 



app.controller('TestController', function ($scope) { 
    $scope.test= "TEST"; 
}); 

내 테스트 파일은 다음과 같습니다

describe('first test', function() { 
var $scope; 

    beforeEach(function(){ 
    module('myApp'); 

    inject(function($rootScope, $controller) { 
     $scope = $rootScope.$new(); 
     ctrl = $controller('TestController', { 
      $scope: $scope 
     }); 
    }); 
    it('scope should have test', function() { 
    expect($scope.test).toEqual("TEST"); 
    }); 
}); 

이 테스트는 $ scope.test가 정의되지 않았다고 말하면서 실패합니다. Chrome에서 디버깅 한 결과 $ 범위에 여러 속성이 있지만 그 중 어느 것도 테스트가 아니라는 것을 알았습니다. 온라인에서 몇 가지 예를 살펴 보았는데 모두 이와 비슷하게 보입니다.

편집 나는 $ 컨트롤러를 주입하기 위해 추가 시도,하지만 난 여전히 같은 문제가있어 .... 내가 잘못 여기서 뭘하는지 아주 잘 모르겠어요 그리고 난 갇혔어요.

+1

당신이'$의 controller'을 얻을 것이다 어디 생각하십니까? – PSL

답변

1

당신은 $rootScope와 함께 $controller service 전달해야합니다

inject(function($rootScope, $controller) { 
    $scope = $rootScope.$new(); 
    ctrl = $controller('TestController', { 
     $scope: $scope 
    }); 
}); 
+0

$ 컨트롤러를 추가 한 후에도 여전히 동일한 문제가 발생했습니다 – user3715648

+0

디버깅 할 때 컨트롤러 코드가 실행되었는지 확인 했습니까? (컨트롤러 정의 내에 console.log를 추가하고 확인하십시오.) –

+0

아니요. 나는 var app = "..."이 실행되지만 내 컨트롤러 코드는 – user3715648

관련 문제