簡體   English   中英

從Jasmine測試中引用JavaScript文件

[英]Referencing JavaScript files from Jasmine tests

我正在編寫一些我打算在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.jsutilities.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的位置。 但是,我不知道如何引用它。 我該怎么做呢?

您的utilities.js文件永遠不會被執行。 您需要在utilities.tests.js require('./utilities')

'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);
        });
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM