我正在编写一些我打算在JavaScript中重用的实用程序。这也是我的学习练习。为了做到这一点,我有以下文件:
utilities.js
Object.prototype.AddPrefix = function(prefix) {
return prefix + this;
};
我打算在JavaScript中调用此函数,如下所示:
var myString = 'agree';
myString = myString.AddPrefix('dis');
请注意,这是一个人为的例子。我只是想证明调用函数。无论哪种方式,我想测试AddPrefix函数。为此,我正在使用Jasmine。我有以下Jasmine文件:
utilities.tests.js
'use strict';
describe('utilities', function() {
describe('add prefix', function() {
it('append dis to string', function() {
var v = 'agree';
var actual = v.AddPrefix('dis');
var expected = 'disagree';
expect(actual).toBe(expected);
});
});
});
两个文件utilities.js
和utilities.tests.js
位于同一目录中。我使用以下脚本通过gulp执行Jasmine:
gulpfile.js
var gulp = require('gulp');
var jasmine = require('gulp-jasmine');
gulp.task('default', function() {});
gulp.task('test', function() {
var testFiles = [
'utilities/utilities.tests.js'
];
return gulp
.src(testFiles)
.pipe(jasmine());
});
当我从命令行执行gulp test
时,出现以下错误:
[09:44:33] Using gulpfile C:\Projects\test\gulpfile.js
[09:44:33] Starting 'test'...
F
Failures:
1) utilities add prefix
1.1) TypeError: Object agree has no method 'AddPrefix'
1 spec, 1 failure
Finished in 0 seconds
[09:44:33] 'test' errored after 42 ms
[09:44:33] Error in plugin 'gulp-jasmine'
Message:
Tests failed
与utilities.tests.js
类似,不知道utilities.js
位于何处。但是,我不知道如何引用它。我该怎么做?
答案 0 :(得分:6)
您的utilities.js
文件永远不会被执行。您需要require('./utilities')
中的utilities.tests.js
:
'use strict';
require('./utilities');
describe('utilities', function() {
describe('add prefix', function() {
it('append dis to string', function() {
var v = 'agree';
var actual = v.AddPrefix('dis');
var expected = 'disagree';
expect(actual).toBe(expected);
});
});
});