文件中有两个功能
我想在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);
});
});
答案 0 :(得分:0)
简单。你用第二个覆盖第一个导出。你需要像
一样导出它们module.export = {
prepend_label, add_data // es2015 syntax
}
然后引用测试文件中的函数:
const aModule = require('./a');
// do something...
aModule.add_label('foo');
// ...