2014-11-05 4 views
1

routeProvider 해결 결과를 어떻게 테스트 할 수 있는지 잘 모르겠습니다.

  1. 경로 제공 업체에 언제 전화 할 수 있습니까?

  2. 반환 결과가 내가 기대하는 바를 어떻게 테스트 할 수 있습니까?

    하는의 내가 경로 제공자 설정은 다음 번째 있다고 가정 해 봅시다 : 다음 예에서

이이 내가 부족 무엇

var rt = angular.module("ResolveTest",[]); 

rt.config(["$routeProvider",function($routeProvider) 
{ 
    $routeProvider.when("/",{ 
    templateUrl: "rt.html", 
    controller: "ResolveCtrl", 
    resolve: { 
     data: ["$q","$timeout",function($q,$timeout) 
     { 
     var deferred = $q.defer(); 

     $timeout(function() 
     { 
      deferred.resolve("my data value"); 
     },2000); 

     return deferred.promise; 
     }] 
    } 
    }); 
}]); 

이는 spec.js 파일입니다 :

describe("Testing route provide resolve", function() { 

var routes; 


it('should test routeProvider', function() { 

     inject(function($route, $location, $rootScope) { 
      routes = $route; 
     }); 

     // here I would like to check that my data value was resolved from the route. 
     // how can i do that? 
}); 

정확한 경로를 호출하고 해결 방법을 테스트하는 방법에 대한 완전한 작동 예제를 제공 할 수 있습니까?

답변

0

나는 이것이 오래되었다는 것을 알고있다. 그러나 나는 똑같은 문제에 직면했다. 그래서 대답했다.

해결 된 데이터는 $ route.current.locals 속성으로 만듭니다.

당신은 사용하여 테스트 할 수 있습니다 -

it('should test routeProvider', function() { 

    inject(function($route, $location, $rootScope) { 
     routes = $route; 
    }); 

    // here I would like to check that my data value was resolved from the route. 
    expect(routes.current.locals.data).toBe("my data value"); 
});