UnitJS
我們常常需要用不同的 assert 方式去驗證我們測試的資料,除了 Mocha 內建的驗證工具外,我們可以使用 UnitJS 去結合不同的驗證資料方式
安裝
npm install unit.js --save-dev
使用 UnitJS 去做資料驗證
我們使用官方網站的測試範例去做簡單的變數值測試,我們將此測試檔案放在專案的 /test/firstUnitJSTest.js
目錄下
var test = require('unit.js');
describe('使用 UnitJS 驗證測試資料', function() {
it('測試變數值', function() {
// 簡單測試變數值
var example = 'hello world';
test
.string(example)
.startsWith('hello')
.match(/[a-z]/)
.given(example = 'you are welcome')
.string(example)
.endsWith('welcome')
.contains('you')
.when('"example" becomes an object', function() {
example = {
message: 'hello world',
name: 'Nico',
job: 'developper',
from: 'France'
};
})
.then('test the "example" object', function() {
test
.object(example)
.hasValue('developper')
.hasProperty('name')
.hasProperty('from', 'France')
.contains({
message: 'hello world'
});
})
.if(example = 'bad value')
.error(function() {
example.badMethod();
});
});
it('其他測試範例', function() {
// ...
});
});
開始測試
使用安裝在本地端的 mocha 去進行單元測試
./node_modules/mocha/bin/mocha ./test/firstUnitJSTest.js
其他資料驗證方法
Nodejs Assert
// 測試 'string' type
test.assert(typeof 'foobar' == 'string');
// 資料相等驗證( '==' )
test.assert.equal('foobar', 'foobar');
// 完整資料及格式相等驗證( '===' )
test.assert.strictEqual('foobar', 'foobar');
// 取出驗證方法
var assert = test.assert;
assert(typeof 'foobar' == 'string');
assert.equal('foobar', 'foobar');
assert.strictEqual('foobar', 'foobar');
Must.js
var test = require('unit.js');
// 測試 'string' 類型
test.must('foobar').be.a.string();
// 資料相等驗證( '==' )
test.must('foobar' == 'foobar').be.true();
// 完整資料及格式相等驗證( '===' )
test.must('foobar').be.equal('foobar');
// 其他驗證方式
// 測試 'string' 類型
('foobar').must.be.a.string();
// 資料相等驗證( '==' )
('foobar' == 'foobar').must.be.true();
// 完整資料及格式相等驗證( '===' )
('foobar').must.be.equal('foobar');
// 取出驗證方法
var must = test.must;
// 測試 'string' 類型
must('foobar').be.a.string();
// 資料相等驗證( '==' )
must('foobar' == 'foobar').be.true();
// 完整資料及格式相等驗證( '===' )
must('foobar').be.equal('foobar');
Should.js
var test = require('unit.js');
// 測試 'string' 類型
test.should('foobar').be.type('string');
// 資料相等驗證( '==' )
test.should('foobar' == 'foobar').be.ok;
// 完整資料及格式相等驗證( '===' )
test.should('foobar').be.equal('foobar');
// 其他驗證方式
// 測試 'string' 類型
('foobar').should.be.type('string');
// 資料相等驗證( '==' )
('foobar' == 'foobar').should.be.ok;
// 完整資料及格式相等驗證( '===' )
('foobar').should.be.equal('foobar');
// 取出驗證方法
var should = test.should;
// 測試 'string' 類型
should('foobar').be.type('string');
// 資料相等驗證( '==' )
should('foobar' == 'foobar').be.ok;
// 完整資料及格式相等驗證( '===' )
should('foobar').be.equal('foobar');