2016-12-31 105 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' 
], 

感谢您的帮助。