为事件创建单元测试
Create unit test for events
我正在使用以下开源软件解压文件,它运行正常。
现在我想创建一些 集成测试 以查看文件是否已保存,问题是进程正在处理 事件 而且我不确定流程何时结束,知道如何解决这个问题吗?
前
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 & chai 作为测试框架。
这是开源的
https://github.com/bower/decompress-zip
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";
}
});
});
我正在使用以下开源软件解压文件,它运行正常。
现在我想创建一些 集成测试 以查看文件是否已保存,问题是进程正在处理 事件 而且我不确定流程何时结束,知道如何解决这个问题吗? 前
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 & chai 作为测试框架。 这是开源的 https://github.com/bower/decompress-zip
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";
}
});
});