ngRoute不是因果报应实例化的
ngRoute not instantiated by karma
有人能帮我找到一种方法,在单元测试的main describe()中同时使用beforeEach(module()和beforeEah(inject())吗
当我包含两个时
beforeEach(module('ngRoute'));
和
beforeEach(inject(function () {}));
在我的测试文件的main describe()中,我得到了这个错误。但是,如果我删除beforeEach(inject(){})代码,那么ngRoute就会被因果报应正确加载。
我已经查看了许多与这个问题相关的其他帖子。例如:
- 错误:尝试在angularjs中实现路由时没有模块:ngRoute
- AngularJS 1.2$注射器:modulerr
- AngularJS 1.2 ngRoute单元测试错误
正如上面每个问题所建议的那样,我已经确保angular-routes.js包含在我的index.html中,并且我还确保"ngRoute"是我的应用程序的依赖项。
测试文件:
define(['ngMock', 'controllers/home/main-home-ctrl'], function () {
'use strict';
describe.only('Controller: MainHomeController', function () {
beforeEach(module('ngRoute'));
beforeEach(inject(function () {}));
afterEach(function() {
});
describe('', function () {
it('should ', function () {
});
});
});
});
karma.config.js:
files: [
{pattern : 'www/js/bootstrap.js', included : false },
{pattern : 'www/js/lib/*.js', included : false },
{pattern : 'www/js/controllers/*.js', included : false },
{pattern : 'www/js/controllers/**/*.js', included : false },
{pattern : 'www/js/directives/*.js', included : false },
{pattern : 'www/js/directives/**/*.js', included : false },
{pattern : 'www/js/factories/*.js', included : false },
{pattern : 'www/js/factories/**/*.js', included : false },
{pattern : 'www/js/filters/*.js', included : false },
{pattern : 'www/js/filters/**/*.js', included : false },
{pattern : 'www/js/services/*.js', included : false },
{pattern : 'www/js/services/**/*.js', included : false },
{pattern : 'www-test/lib/*.js', included : false },
{pattern : 'www-test/spec/**/*.js', included : false },
{pattern : 'www-test/spec/**/**/*.js', included : false },
'www-test/main-test.js',
'www/js/lib/angular-route.js'
],
angular-routes.js位于"www/js/lib/angular routes.js",因此当karma运行我的单元测试时应该包括它。
app.js:
define([
'angular',
'angular-route',
'controllers/index',
'directives/index',
'factories/index',
'filters/index',
'services/index'
], function (ng) {
'use strict';
return ng.module('app', ['ngRoute', 'app.controllers', 'app.directives', 'app.factories', 'app.filters', 'app.services']);
});
所以,我发现了我的新手错误。Angular route包含在我的生产和开发代码中,但不包含在测试代码中,因为我只将该文件添加到了生产和开发文件夹中。
相关文章:
- 如何在GoogleWeb工具包(GWT)中从JSNI调用接口(实例化)
- 如何在用户输入时实例化数组
- 为什么不'当单元测试出现解析错误时,我的因果报应测试会失败
- 在requirejs中共享实例化对象
- Mongoose TypeError:实例化模式类型的对象时,对象不是函数
- Angular重命名模块后未能实例化模块
- 因果报应-找不到模块:错误:无法解析模块'scs'
- 如何将因果报应测试报告上传到声纳
- 因果报应,幻影JS和es6承诺
- Backbone relational无法实例化两个RelationalModel对象
- AngularJS因果报应测试规范承诺未解析,且未调用.then()
- 我应该如何用javascript实例化这个日期
- AngularJS出错-无法实例化模块
- 如何使用console.log在因果报应测试中检查函数
- $routeUpdate未在角因果报应单元测试中广播
- 因果报应测试
- 谷歌地图重叠MarkerSpiderfier实例化问题
- 未捕获错误:由于,[$injector:moduler]未能实例化模块polmgr
- 通过因果报应测试管理angularjs控制器初始化
- ngRoute不是因果报应实例化的