使用Karma测试AngularJS$routeProvider解析
我不确定如何测试routeProvider resolve上的结果使用Karma测试AngularJS$routeProvider解析,angularjs,jasmine,karma-runner,route-provider,Angularjs,Jasmine,Karma Runner,Route Provider,我不确定如何测试routeProvider resolve上的结果 在路由提供程序中,我如何调用确定 如何测试返回结果是否符合我的预期 在下面的示例中,这就是我所缺少的: 假设我有以下路由提供程序配置: var rt = angular.module("ResolveTest",[]); rt.config(["$routeProvider",function($routeProvider) { $routeProvider.when("/",{ templateUrl: "rt.
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?
});
有人能给出一个完整的工作示例,说明如何调用正确的路由并测试解决方案吗?我知道这是一个老问题,但我面临着同样的问题,所以回答它 解析的数据将其转换为$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");
});