【问题标题】:Angularjs unit test a controller dependent on route resolveAngularjs 单元测试依赖于路由解析的控制器
【发布时间】:2014-04-29 11:00:35
【问题描述】:

我正在尝试对我的控制器进行单元测试,但它依赖于一些源自路由解析时的数据。我只是不知道如何测试它(或者不会因为找不到“本地人”而导致测试失败)

控制器:

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

路线配置:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-03
      • 2013-04-06
      • 2010-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-05
      相关资源
      最近更新 更多