2016-12-31 104 views
0

我是新來的茉莉花測試Karma。我在執行測試時遇到以下錯誤。Karma的角度應用測試

enter image description here

這裏是我的文件。

message.service.js //服務文件

(function() { 

    'use strict'; 

    angular.module("app").factory('MessageService', [MessageService]); 

    function MessageService() { 
     var service = {}; 
     //var gui = require('nw.gui'); 

     service.alert = function() { 
     //gui.Window.open('/'); 
      //$window.open('/message'); 
      return 'hello'; 
     }; 

     return service; 
    }; 

})(); // IIFE 

message.service.spec.js //服務測試文件

describe('Message Service', function() { 

    var messageService; 
    beforeEach(angular.mock.module('app')); 

    beforeEach(inject(function(_MessageService_) { 
    messageService = _MessageService_; 
    })); 

    it('should exist', function() { 
    expect(messageService).toBeDefined(); 
    }); 

    it('should return hello', function() { 
    expect(messageService.alert()).toEqual('hello'); 
    }); 

}); 

app.module.js //主應用文件

(function() { 

    'use strict'; 

    angular.module("app", ['ngRoute', 'ui.bootstrap', 'ui.router']); 

    /*angular.module("app").run(['$rootScope', 'StartupService', function($rootScope, startupService){ 
     startupService.init($rootScope); 
    }]);*/ 

})(); // IIFE 

如果我改變按照message.service.js

angular.module("app").factory('MessageService', [MessageService]); 

angular.module("app",[]).factory('MessageService', [MessageService]); 

線然後測試工作得很好,但應用程序將無法正常工作(由於模塊重新開始我猜)。如何讓我的應用程序能夠同時用於測試和正常應用程序執行?感謝您的幫助

+0

發佈您的message.js文件 – Sajeetharan

+0

hi aruna,告訴我 – Sajeetharan

+0

嗨Sajeetharan, 這是相同的文件message.service.js。我剛剛改名。 – Aruna

回答

0

這是我的錯誤。我沒有在與ui.bootstrap模塊相關的Karma配置中包含js文件。之後,它工作得很好。

對於任何獲取此類錯誤的人,請檢查您是否已將所有依賴項文件包含在Karma配置文件中,您在主應用程序中定義了哪些文件。

例如:假設您的主應用程序文件如下所示。

angular.module("app", ['ngRoute', 'ui.bootstrap', 'ui.router']); 

然後你噶配置文件應該是這樣的

files: [ 
    'assets/lib/angular/angular.min.js', 
    'assets/lib/angular-ui-router/angular-ui-router.min.js', 
    'assets/lib/angular-bootstrap/ui-bootstrap-tpls-1.3.2.min.js' 
], 

感謝您的幫助。