Angularjs单元测试依赖于路径解析的控制器

时间:2014-03-21 21:09:22

标签: angularjs unit-testing jasmine karma-runner sinon

我正在尝试对我的控制器进行单元测试,但它依赖于源自路由解析时的一些数据。我只是无法弄清楚如何测试(或者没有通过测试,因为它无法找到“本地人”)

控制器:

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

路线配置:

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

1 个答案:

答案 0 :(得分:5)

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

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