簡體   English   中英

在Mocha的javascript中的test_file.js中運行不同的模塊

[英]Run different modules in a test_file.js in javascript in mocha

文件中有兩個功能。
我想在test_a文件中運行這兩個函數。
在我運行之后,它只為所有it()運行了第二個模塊。
我希望每個模塊都在各自的函數中執行這些it() ,而又不想將這兩個函數分成兩個文件。
你有什么想法? 謝謝!!

//a.js
var add_data = function(data) {
    var data_displayed = 5;
    //var label_name = data[0];
    if (data.length - data_displayed <= 1) // data[0] == label
        var data_start = 1;
    else
        var data_start = data.length - data_displayed;
    return data_start;
};
module.exports = add_data;
var prepend_label = function(label, data, start_index, end_index) {
    data = data.splice(start_index, end_index);
    console.log('before = ' + data);
    if (data[0] != label);
    console.log(data[0]);
    data.unshift(label);
    console.log('after = ' + data);
    return data;
};
module.exports = prepend_label;
//test_a.js
var add_data = require('./a.js');
var prepend_label_to_spliced_data = require('./a.js');
var expect = require("chai").expect;
describe("define test suite", function() {
    it("test add_data() : data.length - data_displayed <= 1", function() {
        var data = ['0', '1', '2', '3', '4'];
        expect(add_data(data)).to.be.equal(1);
    });
    it("test add_data() : data.length - data_displayed > 1", function() {
        var data = ['0', '1', '2', '3', '4', '5'];
        expect(add_data(data)).to.be.equal(1);
    });
});
//var prepend_label_to_spliced_data = require('./home.js');
describe("define test suite2", function() {
    it("test prepend_label() : data[0]!=label", function() {
        var data = ['0', '1', '2', '3', '4'];
        var data2 = ['1', '2', '3', '4'];
        data2.unshift('x');
        expect(prepend_label('x', data, 1, data.length - 1)).to.be.equal(data2);
    });
});

簡單。 您正在用第二個覆蓋第一個出口。 您需要將它們都導出

module.export = {
    prepend_label, add_data // es2015 syntax
}

然后引用測試文件中的功能:

const aModule = require('./a');
// do something...
aModule.add_label('foo');
// ...

暫無
暫無

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

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