繁体   English   中英

在Karma + Jasmine下使用angular.mock.inject遇到TypeScript AngularJS控制器测试问题

[英]TypeScript AngularJS controller test issue with angular.mock.inject under Karma + Jasmine

我正在尝试使用Jasmine + Karma测试用TypeScript编写的AngularJS 1控制器。 但是我一直遇到错误,但我不知道如何解决。 该错误非常难以描述:

PhantomJS 2.1.1(Windows 8 0.0.0)登录控制器应具有文本“ FAILED 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");
    }));

我已经检查过,并且我肯定在我的文件列表中添加了angular-mocks.js (通常在依赖列表的末尾)。 如果有什么不同,即时通讯使用wiredep计算我的依赖关系。

我只是遇到了同样的错误,最后我设法通过导入.ts文件来修复它,该文件在test.ts文件的顶部创建了模块。 您收到此错误消息是因为未导入定义“ app.pages.auth.login”模块的.ts文件。

(是的,解决此错误消息完全没有帮助。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM