javascript - Karma 中的另一个 'module is not defined'

标签 javascript angularjs unit-testing jasmine karma-jasmine

我对 angularjs 还很陌生,我正在尝试使用 Jasmine 和 Karma 测试应用程序。如果我只使用 Jasmine 提供的基本框架(使用 SpecRunner.html),测试工作得很好,但是当我尝试使用 Karma 时,我不断收到相同的“模块未定义”消息。

我在 karma.conf.js 中的文件依赖关系如下:

files: [
  '../../js/angular.min.js',
  '../../js/angular-sanitize.min.js',
  'lib/angular-mocks.js',
  '../../js/app.js',
  'lib/jasmine-2.4.1/jasmine.js',
  'lib/jasmine-2.4.1/jasmine-html.js',
  'lib/jasmine-2.4.1/boot.js',
  'lib/jquery-1.11.3.min.js',
  'spec/spec.js'
]

到目前为止,这看起来与我在 SO 上看到的所有以前的 karma 未定义模块问题一模一样,除了我很确定包含 angular-mocks.js,文件位置是正确的,并且我没有使用任何其他可能覆盖 karma.conf.js 的框架。我很抱歉再次问同样的问题,但是我在这里错过了一些非常明显的东西吗?

最佳答案

我过去在 Karma 方面也遇到过类似的问题。您放置依赖项的顺序很挑剔。例如,如果您使用 JQuery 和 Angular,那么 Karma 会先使用 JQuery,然后再使用 Angular。我看到您将 Angular 放在其所有子模块之前,这很棒。

我会按以下顺序放置依赖项:

files: [
  'lib/jquery-1.11.3.min.js',
  '../../js/angular.min.js',
  '../../js/angular-sanitize.min.js',
  'lib/angular-mocks.js',
  'lib/jasmine-2.4.1/jasmine.js',
  'lib/jasmine-2.4.1/jasmine-html.js',
  'lib/jasmine-2.4.1/boot.js',
  '../../js/app.js',
  'spec/spec.js'
]

我在同一应用程序中使用 Angular 模块的缩小版本和未缩小版本时也遇到了问题。例如,如果您想使用 Angular 的缩小版本,那么请确保它的所有子模块也都缩小了。对于任何 JavaScript 依赖我都会这么说。保持一致。

关于javascript - Karma 中的另一个 'module is not defined',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34598862/

相关文章:

javascript - AngularJS使用过滤器根据属性值查找特定项目

java - 如何使用 JMockIt 对 Log4j 进行单元测试?

c# - 使用 EF4 "Code First"和存储库进行单元测试

unit-testing - 为什么使用 Rackunit 进行的这个测试不起作用?

javascript - 捕获滚轮事件以将向上/向下更改为向下/向上

javascript - 使表格单元格不会因为内容而垂直扩展

javascript - 等待使用 jQuery/Javascript 完成

javascript - JS/jQuery : Best way to get typed characters after '#' in textarea

javascript - Visual Studio 2013 中的 Angular Material 图标注册

javascript - 在 AngularJS 中选择所有复选框