使用 Karma 和 Jasmine 测试 angularjs 指令 - 模块未定义
Testing angularjs directive with Karma and Jasmine - module is not defined
我正在尝试 运行 对我构建的指令进行简单测试,但每次都收到以下错误:
ReferenceError: module is not defined in /root/node-workspace/tk-quick-form/test.js (line 4)
我的karma.conf.js文件(相关内容):
//...
files: [
'angular.min.js',
'tkQuickForm.js',
'test.js'
],
//...
我的 test.js 文件:
describe('Testing quickForm', function() {
var $compile, $rootScope;
beforeEach(module('tkQuickForm')); //the error points to this line
beforeEach(inject(function(_$compile_, _$rootScope_) {
$compile = _$compile_;
$rootScope = _$rootScope_;
}));
it("Creates a simple form", function() {
$rootScope.formStructure = [
{
fieldName: 'name',
type: 'string'
}
];
var element = $compile("<div tk-quick-form='formStructure'></div>")($rootScope);
$rootScope.$digest();
expect(element.html()).toContain('<input id="name"');
});
})
这是我正在测试的指令的前几行:
angular.module('tkQuickForm', [])
.directive('tkQuickForm', ['$http', '$compile', formDirective]);
function formDirective($http, $compile) {
//some code...
}
这是我第一次使用 Karma 和 Jasmine,所以我可能在这里遗漏了一些相当简单的东西,尽管我无法弄清楚到底是什么。
要进行测试,您应该使用 ngMock 模块
https://docs.angularjs.org/api/ngMock
它允许您注入和模拟 angular 服务。
我正在尝试 运行 对我构建的指令进行简单测试,但每次都收到以下错误:
ReferenceError: module is not defined in /root/node-workspace/tk-quick-form/test.js (line 4)
我的karma.conf.js文件(相关内容):
//...
files: [
'angular.min.js',
'tkQuickForm.js',
'test.js'
],
//...
我的 test.js 文件:
describe('Testing quickForm', function() {
var $compile, $rootScope;
beforeEach(module('tkQuickForm')); //the error points to this line
beforeEach(inject(function(_$compile_, _$rootScope_) {
$compile = _$compile_;
$rootScope = _$rootScope_;
}));
it("Creates a simple form", function() {
$rootScope.formStructure = [
{
fieldName: 'name',
type: 'string'
}
];
var element = $compile("<div tk-quick-form='formStructure'></div>")($rootScope);
$rootScope.$digest();
expect(element.html()).toContain('<input id="name"');
});
})
这是我正在测试的指令的前几行:
angular.module('tkQuickForm', [])
.directive('tkQuickForm', ['$http', '$compile', formDirective]);
function formDirective($http, $compile) {
//some code...
}
这是我第一次使用 Karma 和 Jasmine,所以我可能在这里遗漏了一些相当简单的东西,尽管我无法弄清楚到底是什么。
要进行测试,您应该使用 ngMock 模块
https://docs.angularjs.org/api/ngMock
它允许您注入和模拟 angular 服务。