Angularjs对依赖于路由解析的控制器进行单元测试



我试图对我的控制器进行单元测试,但它依赖于路由解析时产生的一些数据。我只是不知道如何测试(或不失败的测试,因为它找不到"本地")

控制器:

myMainModule.controller('theController', function theController($scope, $route) {
    [...]
    $scope.variable = $route.current.locals.data;
    [...]
}

路由配置:

[...].config(function ($routeProvider, $locationProvider) {
    $routeProvider.when([...], {
        templateUrl: [...],
        controller: 'theController',
        resolve: {
            data: [...]
        }
    }
    [...]
} [...]

在你的单元测试中,注入一个假的$route而不是真正的$route:

var fakeRoute = {
    current: { 
        locals: {
            data: 'someFakeData'
        }
    }
}
$scontroller('theController', {
    $scope: $scope,
    $route: fakeRoute
}

最新更新