为事件创建单元测试

时间:2016-08-30 08:26:17

标签: javascript node.js unit-testing mocha

我正在使用以下开源解压缩正常工作的文件。

现在我想为它创建一些集成测试以查看文件是否已保存,问题是该过程正在进行事件并且我不知道肯定当进程结束时,任何想法如何解决? 前

var DecompressZip = require('decompress-zip');
var unzipper = new DecompressZip(filename)

unzipper.on('error', function (err) {
    console.log('Caught an error');
});

unzipper.on('extract', function (log) {
    console.log('Finished extracting');
});

unzipper.on('progress', function (fileIndex, fileCount) {
    console.log('Extracted file ' + (fileIndex + 1) + ' of ' + fileCount);
});

unzipper.extract({
    path: 'some/path',
    filter: function (file) {
        return file.type !== "SymbolicLink";
    }
});

我用mocha&柴作为测试框架。 这是开源的 https://github.com/bower/decompress-zip

1 个答案:

答案 0 :(得分:0)

Mocha support asynchronous code您需要使用done参数调用测试用例,然后在完成所有检查后调用done函数。

示例:

var DecompressZip = require('decompress-zip');


describe("Unzipper test", function() {
  it("should extract folder without error", function(done) { 
    var unzipper = new DecompressZip(filename);

    unzipper.on('error', done); // Pass error to done callback

    unzipper.on('extract', function (log) {
      // Add your checks

      done();
    });
  });

  unzipper.extract({
    path: 'some/path',
    filter: function (file) {
      return file.type !== "SymbolicLink";
    }
  });
});