簡體   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