节点mocha/chai测试文件夹是否存在

Node mocha/chai test to see if a folder exists

我正在尝试创建特定路径的文件夹。我能够在创建文件夹之前正确检查该文件夹是否存在,但是当我 运行 创建后进行相同的检查时 returns 未定义。

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

var fs = require('fs');
var dir = './tmp';

describe('Create a folder and check if it\'s been created', function(){

    it('check if folder has been created, if no folder exists, then create one: ', function(done){

    if (!fs.existsSync(dir)){
        fs.mkdirSync(dir);
    }
    done();
    });

    it('check to see if folder is there', function() {
        if (fs.existsSync(dir)){
            assert.isOk();
        }else{
            assert.fail();
        }
    done();
    });
});

结果是:

1 次通过(23 毫秒) 1 失败

1) 创建文件夹并检查是否已创建检查文件夹是否存在: AssertionError:预期未定义为真

assert.isOk()并没有按照你的想法去做。这并非总是一闪而过的断言;相反,它会检查您传入的参数以查看它是否真实。由于您没有传递任何内容,因此值为 undefined,因此 "expected undefined to be truthy."

你可以放弃断言;如果没有失败的断言,测试将通过,因此不需要虚拟的始终通过的断言。或者您可以将 existsSync 的结果传递给 isOk:

it('check to see if folder is there', function() {
  assert.isOk(fs.existsSync(dir));
});