2014-09-27 81 views
0

的时候,这里是用于测试的IndexController参数的IndexController不是一个函数,得到了不确定的:运行因缘测试

//modules/application/tests/spec/controllers/IndexController.js 

'use strict';  
(function() { 
    describe('Application IndexController', function() { 
     beforeEach(function() { 
      module('HtEwa'); 
      module('HtEwa.Application'); 
     }); 

     var scope, IndexController; 

     beforeEach(inject(function($controller, $rootScope) { 
      scope = $rootScope.$new(); 
      IndexController = $controller('IndexController', { 
       $scope: scope 
      }); 
     })); 

     it('should expose global scope', function() { 
      expect(scope.global).toBeTruthy(); 
     }); 
    }); 
})(); 

我看到其他的答案,但它不是为我工作我的测试文件。我有包括在我karma.conf.js文件是:

files:_.flatten(_.values(assets.core.js)).concat([ 
     'modules/*/*.js', 
     'modules/*/*/*.js', 
     'modules/*/tests/spec/*/*.js' 
    ]); 

我有HtEwaHtEwa.Application模块。在HtEwa.Application下有IndexController。

//modules/application/controllers/IndexController.js 
    'use strict'; 
angular.module('HtEwa.Application').controller('IndexController', ['$scope', 'Global', 
    function($scope, Global) { 
     $scope.global = Global;  
    } 
]); 

我想这不包括我的IndexController文件,但我已经列入我karma.conf.jsmodules/*/*/*.js,这就是其中的IndexController is.Or我失去了什么?

编辑: 而业力--log-level debug表明,所有需要的文件服务。 这里有包含的文件,我从铬看了

<!-- Dynamically replaced with <script> tags --> 
    <script type="text/javascript" src="/base/node_modules/karma-jasmine/lib/jasmine.js"></script> 
<script type="text/javascript" src="/base/node_modules/karma-jasmine/lib/adapter.js"></script> 
<script type="text/javascript" src="/base/bower_components/jquery/dist/jquery.min.js"></script> 
<script type="text/javascript" src="/base/bower_components/angular/angular.js"></script> 
<script type="text/javascript" src="/base/bower_components/angular-mocks/angular-mocks.js"></script> 
<script type="text/javascript" src="/base/bower_components/angular-cookies/angular-cookies.js"></script> 
<script type="text/javascript" src="/base/bower_components/angular-resource/angular-resource.js"></script> 
<script type="text/javascript" src="/base/bower_components/angular-ui-router/release/angular-ui-router.js"></script> 
<script type="text/javascript" src="/base/bower_components/angular-bootstrap/ui-bootstrap.min.js"></script> 
<script type="text/javascript" src="/base/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script> 
<script type="text/javascript" src="/base/modules/application/application.js"></script> 
<script type="text/javascript" src="/base/modules/application/controllers/FooterController.js"></script> 
<script type="text/javascript" src="/base/modules/application/controllers/HeaderController.js"></script> 
<script type="text/javascript" src="/base/modules/application/controllers/IndexController.js"></script> 
<script type="text/javascript" src="/base/modules/application/init.js"></script> 
<script type="text/javascript" src="/base/modules/application/routes/ApplicationRoutes.js"></script> 
<script type="text/javascript" src="/base/modules/application/services/Global.js"></script> 
<script type="text/javascript" src="/base/modules/application/services/HTTPInterceptor.js"></script> 
<script type="text/javascript" src="/base/modules/application/tests/spec/controllers/IndexController.js"></script> 
<script type="text/javascript" src="/base/modules/users/controllers/UserController.js"></script> 
<script type="text/javascript" src="/base/modules/users/routes/Auth.js"></script> 
<script type="text/javascript" src="/base/modules/users/services/UserService.js"></script> 
<script type="text/javascript" src="/base/modules/users/tests/spec/controllers/UserController.js"></script> 
<script type="text/javascript" src="/base/modules/users/users.js"></script> 
    <script type="text/javascript"> 
    window.__karma__.loaded(); 
    </script> 

回答

0

尝试这样做,而不是:

files:_.flatten(_.values(assets.core.js)).concat([ 
    'modules/**/*.js' 
]); 

注意使用两个*。阅读karma configuration documentation中的文件模式示例。

其中的例子是:

  • **/*.js:所有在所有子目录 “JS” 扩展
  • **/!(jquery).js文件:同以前的,但不包括 “的jquery.js”
  • **/(foo|bar).js:在所有子目录,所有“foo.js”或“bar.js”文件
+0

我已经添加,现在它显示另一个错误:'错误:[$注射器:nomod]模块'HtEwa.Users'是不可用嘞!您错误地 拼写模块名称或忘记加载它。如果注册模块确保你指定依赖关系作为第二个参数。' – bring2dip 2014-09-27 07:58:24

+0

什么是错误 – ryeballar 2014-09-27 07:58:47

+0

,我已经在modules/users/users.js中定义了该模块 – bring2dip 2014-09-27 07:59:47

相关问题