2014-11-05 53 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"); 
}); 
相關問題