gpt4 book ai didi

javascript - 我可以从 Mocha 单元测试中删除文件吗?

转载 作者:太空宇宙 更新时间:2023-11-04 02:37:55 25 4
gpt4 key购买 nike

尝试一些node.js 文件系统检查(以确认环境是否正常运行)当我在 Mocha 外部写入 fs.unlink 或 fs.unlinkSync 时,它会按预期删除文件:

var fs = require('fs');

var newFile = new Date().getTime() +".txt";

fs.writeFile(newFile, "hello!", function (err) {
if (err) console.log(err);
// console.log("Created file: "+newFile);
fs.readdir(__dirname, function(err, list) {
// console.log(list)
console.log(list.indexOf(newFile) > -1)
fs.unlinkSync(newFile);
console.log('successfully deleted '+newFile);
// console.log("Deleted: "+newFile)
fs.readdir(__dirname, function(err, list) {
if (err) throw err;
console.log(list.indexOf(newFile) === -1);
});
});
});

但是当我在 Mocha 测试内部尝试完全相同相同的代码时,它不会删除文件...

var chai   = require('chai');
var assert = chai.assert;
var fs = require('fs');

describe('Node.js Environment Checks', function(){
describe('Basic IO', function(){
it('CREATE (temporary) file tests create/write access to FS', function(){
// setup
var newFile = new Date().getTime() +".txt";

fs.writeFile(newFile, "hello!", function (err) {
if (err) console.log(err);
// console.log("Created file: "+newFile);
fs.readdir(__dirname, function(err, list) {
// console.log(list)
assert.isTrue(list.indexOf(newFile) > -1)
fs.unlinkSync(newFile);
console.log('successfully deleted '+newFile);
// console.log("Deleted: "+newFile)
fs.readdir(__dirname, function(err, list) {
if (err) throw err;
assert.isTrue(list.indexOf(newFile) === -1);
});
});
});
})
})
}) // end node env checks

我是不是错过了什么……?

注意:我在 GitHub 上创建了一个问题: https://github.com/visionmedia/mocha/issues/1058
(如果我先在那里得到回复,我会在这里镜像)

最佳答案

使用异步形式的测试。更改您的 it 调用,以便回调获取 done 参数:

it('CREATE (temporary) file tests create/write access to FS', function(done){

并在最里面的异步回调中调用它:

            fs.readdir(__dirname, function(err, list) {
if (err) throw err;
assert.isTrue(list.indexOf(newFile) === -1);
done();
});

关于javascript - 我可以从 Mocha 单元测试中删除文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20388262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com