2013-04-24 58 views
1

当我在模块中定义我的组件时,无法使我的单元测试在Angular.js中工作。这是我的单元测试,使用Karma测试跑步者与茉莉花。我看了几篇文章,看起来这是测试模块控制器的方式。但是,我的测试运行器输出说'模块未定义'。我不确定我错过了什么。我需要在karam.conf.js中配置什么吗?Angular.js中的测试模块控制器,工厂,服务等

describe('bulkEditor factories', function() { 
    beforeEach(module('BulkEditor')); 

    it('should see the controller', inject(function($controller) { 
     expect($controller('GroupController'.toBeTruthy())); 
    })); 

}); 

这里是我的karma.conf.js文件中的部分,显示文件列表获得包括:

files = [ 
    JASMINE, 
    JASMINE_ADAPTER, 
    'https://ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js', 
    'app/js/app/**/*.js', 
    'test/*.spec.js' 
]; 

回答

2

moduleinject功能在angular-mocks.js文件中定义。您可以从http://code.angularjs.org/(例如:http://code.angularjs.org/1.0.6/angular-mocks.js)抓取它。

我必须说,我已经necer使用噶通过CDN,但在任何情况下角mocks.js不部署在CDN引用的文件,所以你必须从http://code.angularjs.org/

+1

感谢你得到它!我永远不会知道这一点。它在文档中说明了这一点? – skaterdav85 2013-04-24 06:31:48

+0

这让我很难过。即使在AngularJS测试中看到的教程中,他们只是提到'包含angular-mocks文件',没有其他解释,甚至没有其他位置。 – 2013-08-27 18:45:43