angularjs loadModules“应该有一个虚拟测试”

时间:2015-05-29 19:03:04

标签: angularjs jasmine karma-jasmine angularjs-module

为我的项目运行业力单元测试产生:

Browser (OS) XYZ section should have a dummy test for XYZ FAILED
    minErr/<@../angular.js:63:12
    loadModules/<@../angular.js:4141:15
    forEach@../angular.js:323:11
    loadModules@../angular.js:4099:5
    createInjector@../angular.js:4025:11
    workFn@../../vendor/angular-mocks/angular-mocks.js:2339:44

XYZ.spec:

describe('XYZ section', function () {
  beforeEach(module('blah.XYZ'));
  it('should have a dummy test for XYZ', inject(function() {
    expect(true).toBeTruthy();
  }));
});

我注意到有些州无法找到,但其他州可以......

1 个答案:

答案 0 :(得分:1)

angular.js的输出(即使没有缩小)也无法调试...... 因此必须改变angular.js以获得部分不错的调试输出

angular.js

function loadModules(modulesToLoad) {
  [...];
  try {
    [...];
  } catch (e) {
    [...];
    console.log(e);//<<<<<-------- this is needed in order to have
                   //<<<<<-------- any idea as to what is going on
    throw $injectorMinErr([...]);
  }
  [...];
}

在这种情况下它产生了:

LOG: '[$injector:unpr] Unknown provider: $stateProvider http://errors.angularjs.org/1.3.15/$injector/unpr?p0=%24stateProvider
minErr/<@[... blah blah blah ...]

这导致我在两个不同的文件中找到angular.module("blah.XYZ", [...]); ...我假设angular会合并两者的依赖列表并保持单个模块引用,但angular会简单地读取它遇到的第一个依赖列表忽略第二次尝试......