在Karma+下使用angular.mock.inject键入脚本AngularJS控制器测试问题;茉莉花

在Karma+下使用angular.mock.inject键入脚本AngularJS控制器测试问题;茉莉花,angularjs,typescript,jasmine,karma-runner,Angularjs,Typescript,Jasmine,Karma Runner,我试图测试一个AngularJS 1控制器,它是用Jasmine+Karma的TypeScript编写的。但我一直碰到一个错误,我不知道如何修复。这个错误很难描述: PhantomJS 2.1.1(Windows 8 0.0.0)登录控制器应具有文本“ 失败 forEach@/bower_components/angular/angular.js:341:24 loadModules@/bower_components/angular/angular.js:4456:12 createInjec

我试图测试一个AngularJS 1控制器,它是用Jasmine+Karma的TypeScript编写的。但我一直碰到一个错误,我不知道如何修复。这个错误很难描述:

PhantomJS 2.1.1(Windows 8 0.0.0)登录控制器应具有文本“ 失败 forEach@/bower_components/angular/angular.js:341:24 loadModules@/bower_components/angular/angular.js:4456:12 createInjector@/bower_components/angular/angular.js:4381:22 workFn@/bower_components/angular mocks/angular mocks.js:2507:60 /bower_components/angular/angular.js:4496:53 forEach@/bower_components/angular/angular.js:341:24 loadModules@/bower_components/angular/angular.js:4456:12 createInjector@/bower_components/angular/angular.js:4381:22 workFn@/bower_components/angular mocks/angular mocks.js:2507:60 /bower_components/angular/angular.js:4496:53 PhantomJS 2.1.1(Windows 8 0.0.0):执行了1次(1次失败)错误中的1次(0.019秒/ 0.015秒)

这是我的代码,请注意,它实际上没有做任何事情。在
angular.mocks.inject
方法上,它似乎失败了,就像我对它进行注释并添加一些非常基本的测试时一样

describe("Login Controller", () => {
    var controller: App.Login.LoginController;

    beforeEach(angular.mock.module("app.pages.auth.login"));

    beforeEach(angular.mock.module($provide => {
        $provide.value("$window", {});
    }));

    // I can get to here ok but this line below fails with the error above
    // Note I have also tried putting $rootScope back in but to no avail
    beforeEach(angular.mock.inject((/*$rootScope, $state, $http, $mdToast, $window, $log*/) => {
        console.log("test");
    }));

我已经检查过了,并且我肯定会在我的文件列表中包含
angularmocks.js
(尽管在我的依赖项列表的末尾)。如果有任何不同,我将使用
wiredep
计算我的依赖项。

我刚刚遇到了相同的错误,最后我通过导入在test.ts文件顶部创建模块的.ts文件来修复它。您之所以会遇到此错误,是因为定义“app.pages.auth.login”的.ts文件“模块未导入


(是的,在解决此问题时,错误消息根本没有帮助。)

可能没有帮助,但请尝试使用
inject(()=>{})
而不使用
angular.mock
。这就是我所做的-使用typescript和所有。