【问题标题】:How to configure this karma test?如何配置此业力测试?
【发布时间】:2015-08-23 11:47:37
【问题描述】:

我正在尝试对我的过滤器进行单元测试,这是 js:

app.filter('dateRange', function() {
  return function(input,dateFrom,dateTo) {
      return _.filter(input, function(d) {
         var result= Date.parse(d.settlementDate) >= Date.parse(dateFrom) && Date.parse(d.settlementDate) <= Date.parse(dateTo)
          return result;
      });
  }
});

我在这个中使用 underscore.js。这是 karma.conf 的文件部分:

 files: [

            'bower_components/angular/angular.js',
            'bower_components/angular-animate/angular-animate.js',
            'bower_components/angular-mocks/angular-mocks.js',
            'bower_components/angular-ui-router/release/angular-ui-router.js',
            'bower_components/angular-bootstrap/ui-bootstrap.js',
            'bower_components/angular-smart-table/dist/smart-table.min.js',
            'bower_components/underscore/underscore.js',
            'app/modules/**/*.js',
            'app/modules/app.js',
            //'../app/scripts_old/**/*.js',
            //  'test/mock/**/*.js',
            'test/spec/**/*.spec.js'
        ],

这是规格:

'use strict';

describe('Filter: daterange', function () {

    var $filter;
    beforeEach(function () {
        module('myModule');
    });

    beforeEach( inject(function (_$filter_) {
        $filter = _$filter_;
    }));

    it('should be in the range',function(){
        expect($filter('dateRange')('08/10/2015','08/01/2015','08/30/2015')).toBeTruthy;
    });

});

bower.json:

{
  "name": "angularmain-fork",
  "version": "0.0.0",
  "dependencies": {
    "angular": "^1.3.0",
    "json3": "^3.3.0",
    "es5-shim": "^4.0.0",
    "bootstrap-sass-official": "^3.2.0",
    "angular-resource": "^1.3.0",
    "underscore": "~1.8.3",
    "angular-ui-router": "~0.2.15",
    "angular-bootstrap": "~0.13.3",
    "angular-smart-table": "~2.1.2",
    "moment": "~2.10.6",
    "angular-animate": "~1.4.4"
  },
  "devDependencies": {
    "angular-mocks": "~1.3.0",
    "angular-scenario": "~1.3.0",
    "angular-bootstrap": "~0.13.0",
    "angular-smart-table": "~2.1.2"
  },
  "appPath": "app",
  "resolutions": {
    "angular": "^1.0.0"
  }
}

为什么会出现这个错误?:

错误:[$injector:modulerr] 无法实例化模块 ngMock,原因是:

错误:[$injector:unpr] 未知提供者:$$asyncCallbackProvider

【问题讨论】:

  • 你能确定 angular 和 angular-mocks 的版本是一样的吗?
  • 根据 bower.json 版本是一样的。
  • 错误不是由您的过滤器代码引起的。任何其他模块都失败了。您能否说明您如何声明您的主模块“app”

标签: angularjs karma-jasmine


【解决方案1】:

我认为这可以解决您的问题:Answer to same problem

我刚刚尝试过(只是将^放在版本号的开头),它解决了我的问题。

【讨论】:

    猜你喜欢
    • 2016-09-17
    • 2022-10-25
    • 2019-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 2014-09-18
    相关资源
    最近更新 更多