我正在为文件生成模块编写测试套件。例如,
调用generator('test')
将在名为test
的特定目录中创建一个文件。以下是我设置mocha / chai测试的方法。
let chai = require('chai');
let expect = chai.expect;
chai.use(require('chai-fs'));
let Promise = require('bluebird');
let rm = require('shelljs').rm;
let generator = Promise.promisify(require('../../commands/generator.js'));
describe('Generator', () => {
afterEach(() => {
rm('-rf', 'frontend');
});
it('should generate a file', () => {
Promise.resolve(generator('test', 'test', [])).then(() => {
expect('src/test.js').to.be.a.file();
});
});
});
我在每次测试后使用shelljs
删除文件。但是,我遇到了错误
1)发电机"每个"钩:
未捕获错误:EBADF:错误的文件描述符,写入 在错误(本机)
我认为这是因为rm
是一个异步功能,但我不确定如何解决这个问题。
生成器有多个单独的测试,我想在每次测试后删除生成的文件。有一个更好的方法吗?