2014-12-16 3 views
0

다음 URL로 사용자 프로필에 대한 I 페이지/#!/people/user/134 사용자 프로필 페이지에 표시된 데이터가 다음과 같은지 확인하는 테스트를 만들려고합니다. 올바른 것. 이렇게하려면 $ routeParams에서 사용자 ID (134)를 가져온 다음 나머지 끝점에 대한 호출을 만들고 나머지 끝점의 응답에 대해 모델을 확인하려고합니다.

내가 routeParams하지만 모든 예제 내가 공식 phonecat 튜토리얼에서 ... 예 그것을 하드 코딩 된 발견 얻을 수있는 방법 찾기 위해 시도했다 :

beforeEach(inject(function(_$httpBackend_, $rootScope, $routeParams, $controller) { 
    $httpBackend = _$httpBackend_; 
    $httpBackend.expectGET('phones/xyz.json').respond({name:'phone xyz'}); 

    $routeParams.uuid = 'xyz'; 
    scope = $rootScope.$new(); 
    ctrl = $controller('PhoneCatContr', {$scope: scope}); 
})); 

을 어떤 방법이 내가 할 수 있나요 실제 경로를 찾으십시오 .Params?

+1

왜 단순히 URL에서 그것을 얻을? {{browser.getCurrentUrl()}}을 사용하여 필요한 param에 대한 문자열을 구문 분석 할 수 있습니다. – adamK

+0

($ routeParams 또는 다른 것을 통해 그것을 얻는) 각진 방법이있는 경우에 나는 그것을 선호 할 것입니다 - 그것을 해석하는 것은 아마 나의 마지막 접근 일 것입니다 – user2997962

답변

0

이것은 protractor 쪽에서 해결해야 할 것이 아닙니다. protractor은 종단 간 상위 수준블랙 박스 테스트 프레임 워크입니다.이 테스트 프레임 워크는 실제 사용자의 브라우저 페이지와의 상호 작용을 모방하는 프레임 워크입니다. 그러나, adamK의 제안 @ 따르지

, 현재 URL에서 추출 할 수 있습니다 :

var url = browser.getCurrentUrl(); 
var userID = url.match(/(\w+)\.json/)[1]; 

데모 :

> var s = "phones/xyz.json"; 
> s.match(/(\w+)\.json/)[1]; 
"xyz" 
관련 문제