【发布时间】:2012-10-31 08:20:28
【问题描述】:
我正在尝试在我的项目中运行默认服务单元测试(取自 GitHub 上的 Angular Seed 项目),但我不断收到错误消息“未定义模块”。
我已经读到这可能与 referenced JavaScript files 的顺序有关,但我似乎无法让它工作,所以希望你们中的一个人能够提供帮助。
我的测试配置如下:
basePath = '../';
文件 = [
'public/javascripts/lib/jquery-1.8.2.js',
'public/javascripts/lib/angular.js',
'public/javascripts/lib/angular-.js',
'公共/app.js',
'public/controllers/.js',
'public/directives.js',
'公共/filters.js',
'公共/services.js',
茉莉花,
茉莉花适配器,
'public/javascripts/lib/angular-mocks.js',
'test/unit/*.js' ];autoWatch = true;
浏览器 = ['Chrome'];
junitReporter = { outputFile:'test_out/unit.xml',套件:'unit' };
服务如下所示:
angular.module('myApp.services', []).
value('version', '0.1');
测试看起来像这样:
'use strict';
describe('service', function() {
beforeEach(module('myApp.services'));
describe('version', function() {
it('should return current version', inject(function(version) {
expect(version).toEqual('0.1');
}));
});
});
而通过testacular运行测试时的错误是这样的:
ReferenceError: 模块未定义
【问题讨论】:
-
你能在某处分享你的项目吗?我也许能帮上忙。您是否尝试为 testacular 打开 DEBUG 级别以查看根据您的配置实际加载了哪些文件?现在可疑的部分是这种模式:public/javascripts/lib/angular-.js - 它应该匹配什么?
-
@JohnDoe 谢谢你的工作。如果您添加答案,我会将其标记为已解决。原因是我正在关注种子项目,它是这样做的,并且奏效了。不知道是不是因为是旧版本。
-
@Dofs 是“'public/javascripts/lib/angular-.js'”和“'public/controllers/.js'”错字吗?
-
@RyanO'Neill 抱歉,是的,这是一个错字。
标签: unit-testing angularjs karma-runner