从 Jasmine 测试中引用 JavaScript 文件

Referencing JavaScript files from Jasmine tests

本文关键字:JavaScript 文件 引用 Jasmine 测试      更新时间:2023-09-26

我正在编写一些实用程序,我打算在我的JavaScript中重用它们。这也是我的一次学习练习。为了做到这一点,我有以下文件:

公用事业.js

Object.prototype.AddPrefix = function(prefix) {
    return prefix + this;
};

我打算像这样在 JavaScript 中调用这个函数:

var myString = 'agree';
myString = myString.AddPrefix('dis');

请注意,这是一个人为的例子。我只是想演示如何调用该函数。无论哪种方式,我都想测试 AddPrefix 函数。为此,我正在使用茉莉花。我有以下茉莉花文件:

实用程序.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.jsutilities.tests.js 位于同一目录中。我正在使用以下脚本通过 gulp 执行茉莉花:

古尔普文件.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在哪里一样。但是,我不知道如何引用它。我该怎么做?

您的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);
        });
    });
});