测试角度工厂

时间:2016-05-04 15:53:09

标签: angularjs unit-testing jasmine karma-jasmine

我正努力提出一个Angular项目的单元测试级别,但很难测试一个有依赖项的AngularJS工厂。

我的工厂有5个依赖项,但我甚至无法进行测试工作,只测试工厂的定义。以下是我正在做的一些示例代码。我尝试过使用inject,$ provide等但是我一直在犯

的错误
"Configuration parameter should be an object, instead it is a: undefined"

这是测试,到目前为止,我已经注释掉了代码以显示我一直在尝试的内容:

(function() {

'use strict';

 describe('While working with the channelService', function(){

var sut,
    q,
    filter,
    common,
    dataContext,
    etCommon;

beforeEach(function(){

  // Load the module
   module('app');
   module('app.inventory');
   module('blocks.router');

  inject(function($injector){
    sut = $injector.get('channelService');
    q = $injector.get('$q');
    filter = $injector.get('$filter');
    common = $injector.get('common');
    dataContext = $injector.get('dataContext');
    etCommon = $injector.get('etCommons');

    spyOn(q, 'defer');
    spyOn(filter  , 'defer');
    spyOn(common, 'makeStruct');
    spyOn(q, 'defer');
    spyOn(q, 'defer');
  });




describe('should define the following publicly', function(){
  it('should be defined itself', function(){
      expect(sut).toBeDefined();
  });
});

});

})();

SErvice符合

的要求
(function () {

angular.module('app.inventory').factory('channelService', [
    '$q', '$filter', 'common', 'dataContext', 'etCommon',
    function ($q, $filter, common, dataContext, etCommon) {
...

...
]);

}());

1 个答案:

答案 0 :(得分:0)

尝试在beforeEach中使用ngMock

shareReplay