test/
├── TestOne.js
└── TestTwo.js
说,TestOne.js
是:
此测试用例从文件InputOne.json
读取,并将一条记录添加到已有3条记录的对象中。
describe('Add Items', function () {
it('Should add items', function () {
var input = require('./data/InputOne');
var obj = new Department();
var result = obj.AddDept(input);
result.should.have.length(4);
});
});
说,TestTwo.js
是:
此测试用例从文件InputOne.json
读取并计算元素数
describe('Count Items', function () {
it('Should count items length', function () {
var input = require('./data/InputOne');
var obj = new Department();
var result = obj.CountDept(input);
result.should.have.length(3);
});
});
问题:
两个测试用例都使用相同的文件作为输入。如果我使用mocha运行测试用例,则测试用例都会通过
mocha TestOne
//通过
mocha TestTwo
//通过
如果我说npm test
(运行所有测试用例)我得到错误,因为TestOne文件中的测试用例修改了输入文件。我怎样才能使测试用例不缓存输入文件(或强制测试用例来创建自己的输入文件副本)
答案 0 :(得分:0)
要确保文件始终以磁盘的当前形式加载,请使用fs
加载:
var fs = require('fs');
var input = fs.readFileSync('./data/InputOne');
input = JSON.parse(input);
http://nodejs.org/api/fs.html#fs_fs_readfilesync_filename_options