为什么我的AngularJS控制器上的茉莉花测试失败了?

时间:2014-10-20 20:47:58

标签: javascript angularjs jasmine

我收到了这个错误:

“Controller:MainCtrl应检索用户列表并分配给scope.users FAILED     TypeError:'undefined'不是函数(评估'Users.findAll()')         at /Users/John/NetBeansProjects/ClearsoftDemo/app/scripts/controllers.js:21         在调用(/Users/John/NetBeansProjects/ClearsoftDemo/bower_components/angular/angular.js:3869)“

这是控制器代码:

.controller('MainCtrl', function ($scope, Users) {
        $scope.users = Users.findAll();
        $scope.sortField = 'lastName';
        $scope.reverseSort = true;
    })

这是服务代码:

service.factory('Users', function ($resource) {
return $resource('http://localhost:8080/ClearsoftDemoBackend/webresources/clearsoft.demo.users', {}, {
    findAll: {method: 'GET', isArray: true}
});

});

这是测试代码:

beforeEach(inject(function ($controller, $rootScope) {
    var users = {query: function () {
            return [{}];
        }};
    scope = $rootScope.$new();
    MainCtrl = $controller('MainCtrl', {
        $scope: scope,
        Users: users
    });
}));

1 个答案:

答案 0 :(得分:0)

这是问题的一部分:您的模拟不会声明findAll方法。请注意,您的Users资源声明findAll是另一种方法 - 您也应该这样做。