无法在业力测试中加载一个非常简单的模块

时间:2015-11-02 02:13:35

标签: angularjs karma-runner

我无法将非常简单的角度模块加载到业力测试中。

我的模块看起来,(karmatest_test0.js)

该模块没有控制器/服务。只是为了最简单。

'use strict';

var stackoverflow_test = angular.module("stackoverflow_test_app", []);

我的测试看起来,(karmatest \ test0.js)

我在这里做的唯一事情就是加载这个模块

'use strict';

describe("stackoverflow_test", function(){

  it("init the service", function(){

      var $injector = angular.injector(['stackoverflow_test_app']);

      expect(true).toBe(true);

  });

});

我的配置文件看起来是,(my.conf.js)

一切都是最基本的。我确实包括了来自谷歌CDN的angular.js和angular-mock.js。

    // Karma configuration
    // Generated on Wed Oct 28 2015 18:37:16 GMT-0700 (Pacific Daylight Time)

    module.exports = function(config) {
      config.set({

        // base path that will be used to resolve all patterns (eg. files, exclude)
        basePath: '',


        // frameworks to use
        // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
        frameworks: ['jasmine'],


        // list of files / patterns to load in the browser
        files: [          

'https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js',
          'https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-mocks.js',
          'karmatest_test.js',
          'karmatest/*.js'
        ],


        // list of files to exclude
        exclude: [
        ],

        reporters: ['mocha', 'html'],

        port: 9876,

        colors: true,

        logLevel: config.LOG_INFO,

        autoWatch: true,

        browsers: ['PhantomJS'],

        singleRun: true,

        concurrency: Infinity
      })
    }

一切都是最简单的。错误是,

Error: [$injector:modulerr]

 at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:35
    at r (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:7)
    at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:35)
    at ab (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:38)
    at http://localhost:9876/base/karmatest/test0.js?7c002471b6c0067e24cfb8de0e5048f9581f112e:19

看起来错误源于我的测试不会加载模块“stackoverflow_test”。怎么样?

1 个答案:

答案 0 :(得分:1)

如果这应该是您的模块的创建,您应该将两个参数传递给angular.module;依赖项的名称和数组。

var stackoverflow_test = angular.module("stackoverflow_test_app", []);

否则,它充当 getter 。见https://docs.angularjs.org/api/ng/function/angular.module#usage

此外,您的文件似乎的名称为karmatest_test0.js,而您的因果conf.js需要karmatest_test.js