var assert = require('assert');/*node中,我們可以使用assert模塊來測試代碼。equal()和notEqual()分別作相等性和不等性的判斷,第一個參數是期望值,第二個參數是真實值,第三個參數是異常信息*/// assert.equal(1,2,[consol ...
var assert = require('assert');
/*node中,我們可以使用assert模塊來測試代碼。
equal()和notEqual()分別作相等性和不等性的判斷,
第一個參數是期望值,第二個參數是真實值,第三個參數是異常信息*/
// assert.equal(1,2,[console.log('ok')]);//期望值和真實值無論相等還是不相等,輸出信息,為什麼?
// assert.equal(1,2,['not equal']);//期望值和真實值不相等,拋出異常信息
/*ok()方法是比較真值的簡潔方法,相當於是用==比較當前值是否為true。*/
// assert.ok('','w');//空格為false
// assert.ok('This is a string', 'Strings that are not empty are truthy'); //true
assert.ok(0, 'Zero is not truthy');//0為false
// assert.fale(1,2,'not equal',console.log('error'));
/*node提供了對object對象的比較方法deepEqual() 和 notDeepEqual(),
他們採用下麵的步驟比較對象,有一個步驟不匹配就拋出異常:
1.採用===比較;
2.比較他們是否是Buffers,如果是則比較長度,接下來每位元組每位元組的比較;
3.是用==比較;4.最後如果參數是object對象,則比較他們得屬性長度和屬性值。
可以看的出來,這兩個方法性能上可能要差些,所以只有在需要的時候才使用他們。*/
// assert.deepEqual(1,2,['not equal']);
/*assert.throws(block[, error][, message])
聲明一個 block 用來拋出錯誤(error), error可以是構造函數,正則表達式或其他驗證器。*/
// assert.throws(function(){
// throw new Error('message is wrong');
// });
// assert.doesNotThrow(function() {
// throw new Error("I lived in the ocean way before Nemo");
// });