跳到主要内容

测试

测试你的插件是确保质量的唯一方法。它给用户带来信心,也让你的生活更轻松。

编写插件 > 测试

工具

大多数插件使用 mochashouldevent-stream 来帮助它们测试。以下示例将使用这些工具。

测试流模式下的插件

var assert = require('assert');
var es = require('event-stream');
var File = require('vinyl');
var prefixer = require('../');

describe('gulp-prefixer', function() {
describe('in streaming mode', function() {

it('should prepend text', function(done) {

// 创建假文件
var fakeFile = new File({
contents: es.readArray(['stream', 'with', 'those', 'contents'])
});

// 创建一个前缀插件流
var myPrefixer = prefixer('prependthis');

// 将假文件写入其中
myPrefixer.write(fakeFile);

// 等待文件返回出来
myPrefixer.once('data', function(file) {
// 确保它以相同的方式输出
assert(file.isStream());

// 缓冲内容以确保前缀被添加
file.contents.pipe(es.wait(function(err, data) {
// 检查内容
assert.equal(data, 'prependthisstreamwiththosecontents');
done();
}));
});

});

});
});

测试缓冲区模式下的插件

var assert = require('assert');
var es = require('event-stream');
var File = require('vinyl');
var prefixer = require('../');

describe('gulp-prefixer', function() {
describe('in buffer mode', function() {

it('should prepend text', function(done) {

// 创建假文件
var fakeFile = new File({
contents: new Buffer('abufferwiththiscontent')
});

// 创建一个前缀插件流
var myPrefixer = prefixer('prependthis');

// 将假文件写入其中
myPrefixer.write(fakeFile);

// 等待文件返回出来
myPrefixer.once('data', function(file) {
// 确保它以相同的方式输出
assert(file.isBuffer());

// 检查内容
assert.equal(file.contents.toString('utf8'), 'prependthisabufferwiththiscontent');
done();
});

});

});
});

一些具有高质量测试的插件