$ httpBackend返回空对象(预期对象({})等于)

时间:2015-04-24 04:57:15

标签: angularjs unit-testing karma-jasmine

我是Unit Testing的新手,正在尝试使用$ httpBackend来测试服务。

这是我的一些代码:

.factory('Configuration', function($http, $rootScope, $localStorage) {
    return $http.get('some/url', {cache: true}).success(function(response) { return response; })
        .then(function(response){

            return (response.data.some.thing) || {};

        });
})

config在这里,在模块.config():

$routeProvider.when('/something/:id', {templateUrl: 'some/file.html',      resolve: {config: 'Configuration' }, controller: 'AssessmentTheme as assessmentTheme'});

然后测试:

describe('testAuthor', function() {
    var controller, element, $modalInstance, config;


    beforeEach(module('testAuthor'));

    beforeEach(inject(function($controller, $httpBackend){
      $httpBackend.when('GET', 'some/url').respond([{},{},{}])
         controller = $controller("AssessmentTheme", {config: config})
    }))
    ....
    beforeEach(inject(function($httpBackend){
        $httpBackend.flush();
    }))

    it('shoud do something', function(){
       expect(controller.config).toEqual([{},{},{}]);
    })
})

以下是控制器对配置的作用:

.controller('AssessmentTheme', function (config) {
    this.config = {}
    angular.extend(this.config, config);
....

我试图将各种不同的东西放入响应中,但业力仍然失败,并带有以下信息:

Expected Object({  }) to equal [ Object({  }), Object({  }), Object({  }) ]

我无法弄清楚如何让测试实际使用来自$ httpBackend()的响应

有没有人看到我的问题并能引导我找到解决方案?

提前致谢。

0 个答案:

没有答案