Angularjs 在typescript中使用Karma进行单元测试:注入问题

Angularjs 在typescript中使用Karma进行单元测试:注入问题,angularjs,typescript,karma-runner,inject,Angularjs,Typescript,Karma Runner,Inject,我有一个非常简单的测试,我注入$http$q和$httpBackend,然后什么也不做 它在注射过程中崩溃了,我不知道为什么 这是我的密码: /// <reference path="../references.spec.ts" /> module Home.Test { "use strict"; beforeEach(angular.mock.module("homeApp")); describe("appInstanceService", ()

我有一个非常简单的测试,我注入$http$q和$httpBackend,然后什么也不做

它在注射过程中崩溃了,我不知道为什么

这是我的密码:

/// <reference path="../references.spec.ts" />

module Home.Test {

    "use strict";

    beforeEach(angular.mock.module("homeApp"));

    describe("appInstanceService", () => {

        let $httpBackend: angular.IHttpBackendService;
        let $q: angular.IQService;
        let service: Service.AppInstanceService;

        beforeEach(
            angular.mock.inject((
                $http: angular.IHttpService,
                _$q_: angular.IQService,
                _$httpBackend_: angular.IHttpBackendService
            ) => {
                $httpBackend = _$httpBackend_;
                $q = _$q_;
                service = new Service.AppInstanceService($http, $q, _, moment);
            })
        );

        it("shoul pass", () => {
            expect(true).toBe(true);
        });
    });
}
这是我在控制台中得到的错误消息

我的karma conf的文件部分缺少一些bower_组件…

你能发布你的karma配置文件吗?用karma conf编辑
module.exports = function(config) {
    config.set({
        // base path, that will be used to resolve files and exclude
        basePath: '',

        // testing framework to use (jasmine/mocha/qunit/...)
        frameworks: ['jasmine'],

        // list of files / patterns to load in the browser
        files: [
            './bower_components/angular/angular.js',
            './bower_components/angular-animate/angular-animate.min.js',
            './bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js',
            './bower_components/angular-mocks/angular-mocks.js',
            './bower_components/angular-sanitize/angular-sanitize.min.js',
            './bower_components/angular-translate/angular-translate.min.js',
            './bower_components/angular-ui-router/release/angular-ui-router.js',
            './bower_components/ui-select/dist/select.min.js',
            './bower_components/lucca-ui/dist/custom/lucca-ui-spe.js',
            './bower_components/moment/min/moment-with-locales.min.js',
            './bower_components/underscore/underscore-min.js',

            './dist/home.js',

            './tests/**/*.js',
        ],

        preprocessors: {
            'dist/home.js': ['coverage'],
        },

        // ngHtml2JsPreprocessor: {
        //  prependPrefix: '/web/Timmi.web/areas/timmi/'
        // },

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

        // web server port
        port: 9876,

        // level of logging
        // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
        logLevel: config.LOG_INFO,

        // enable / disable watching file and executing tests whenever any file changes
        autoWatch: true,
        // Continuous Integration mode
        // if true, it capture browsers, run tests and exit
        singleRun: false,


        plugins: [
            'karma-jasmine',
            // 'karma-chrome-launcher',
            // 'karma-firefox-launcher',
            // 'karma-ie-launcher',
            'karma-phantomjs-launcher',
            'karma-junit-reporter',
            'karma-coverage',
            // 'karma-ng-html2js-preprocessor'
        ],

        browsers: ['PhantomJS'],
        reporters: ['progress'],
        junitReporter: {
            outputFile: 'test-karma-results.xml',
            suite: 'Lucca',
            useBrowserName: false
        },
        coverageReporter: {
            type : 'json',
            dir : 'coverage/',
            subdir: '.',
            file : 'coverage-final.json'
        }
    });
};