2014-01-24 2 views
0

저는 각도 웹 앱을 개발 중입니다. 다음 오류가 happends 때 true로 fetchPlayersFailed을 설정합니다 나의 컨트롤러 방법입니다 :

it('fetchAllPlayers: should set fetchPlayersFailed to true when error happens', function() { 
    httpBackend.expectGET('/api/players?active=true').respond(500); 
    scope.fetchAllPlayers(); 
    httpBackend.flush(); 
    expect(scope.fetchPlayersFailed).toEqual(true); 
    }); 
:

$scope.fetchAllPlayers = function() { 
    $scope.players = PlayerFact.query({ 
      active: true 
     }, 
     undefined, 
     function() { 
      console.log('set fetchPlayersFailed to true'); 
      $scope.fetchPlayersFailed = true; 
     } 
    ); 
}; 

을하지만 단위 테스트를 실행할 때 오류가이 방법에서 발생이 아래 내가 쓰는 사양입니다

다음은 오류입니다 :

Chrome 32.0 (Windows) Controller: PlayerCtrl fetchAllPlayers: should set fetchPl 
ayersFailed to true when error happens FAILED 
     Expected false to equal true. 
     Error: Expected false to equal true. 
      at null.<anonymous> (C:/Users/I056958/Documents/My Own/javascript wo 
rkspace/redjoker/test/spec/controllers/player.js:111:38) 

왜 fetchPlayersFailed이 true로 설정되고 있지 ??

+0

'set fetchPlayersFailed to true'메시지가 콘솔에 로그인 되었습니까? – dfsq

+0

예, 기록됩니다. –

답변

1

시험에서 전화를 테스트하지 않았으므로 GET ('url'). respond (500)라고 대답하는 것이 좋습니다. 또한 PlayerFact가 $ resource 객체를 반환하는 서비스 인 경우 나는 그것을 조롱하는 것이 더 낫다고 생각합니다.

문제는 쿼리에서 함수를 사용하는 것이므로 성공 콜백이고 오류 처리기가 아니라 PlayerFact가 $ 리소스 객체 인 경우입니다. 업데이트 된 코드는 다음과 같습니다.

+0

답장을 보내 주셔서 감사합니다. 문제가 정확히 무엇입니까? –

+0

그러나 저는 공식적인 각서에 따르면 다소 혼란 스럽습니다. HTTP get GET "class"actions : Resource.action ([parameters], [success], [error]) 그래서 쿼리는 GET 액션을 사용하고 있습니다. 3 개의 매개 변수 만 따라야합니다. ** 첫 번째 매개 변수 ** : {활성 : true}, ** 두 번째 매개 변수 ** : 정의되지 않음 (이 매개 변수는 성공한 콜백이어야 함). ** 3 번째 매개 변수 ** : function() {}, (이 중 하나는 오류 콜백이어야합니다). 여기에 오해가 있습니까? –

+0

@TestersGonnaTest 위의 기능을 단위 테스트하는 방법을 알고 계십니까? 쿼리 매개 변수가있는 $ 리소스? 나는 이것을 알아 내려고 노력하고 있지만 어떻게 발견 할 수는 없다. 감사 –

관련 문제