Javascript 节点mocha/chai测试以查看文件夹是否存在

Javascript 节点mocha/chai测试以查看文件夹是否存在,javascript,node.js,mocha.js,chai,Javascript,Node.js,Mocha.js,Chai,我正在尝试创建一个特定路径的文件夹。在创建文件夹之前,我能够正确地检查它是否存在,但是当我在创建文件夹之后运行相同的检查时,它返回未定义 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', fu

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

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) 创建文件夹并检查是否已创建该文件夹检查文件夹是否存在: 断言错误:预期未定义为真实的

不会按照您的想法执行。这并不是一个总是转瞬即逝的断言;相反,它会检查你传递的论点,看它是否真实。由于没有传入任何内容,因此该值为
未定义
,因此“预期未定义为truthy”

你可以不说这个断言;如果没有失败的断言,测试将通过,因此不需要总是通过断言的伪断言。或者您可以将
existsSync
的结果传递给
isOk

it('check to see if folder is there', function() {
  assert.isOk(fs.existsSync(dir));
});
不做你想做的事。这并不是一个总是转瞬即逝的断言;相反,它会检查你传递的论点,看它是否真实。由于没有传入任何内容,因此该值为
未定义
,因此“预期未定义为truthy”

你可以不说这个断言;如果没有失败的断言,测试将通过,因此不需要总是通过断言的伪断言。或者您可以将
existsSync
的结果传递给
isOk

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