NodeJSが言い切った使用

1589 ワード

ここでいくつかの実際的な例を挙げて、nodeの中で断言する簡単な使用を説明します.
まず、例で使われる基本的なオブジェクトです.
function Todo(){
	this.todos = [];
}

Todo.prototype.add = function(item) {
	if(!item) throw new Error('Todo#add requires an item');
	this.todos.push(item);
};

Todo.prototype.deleteAll = function(){
	this.todos = [];
}

Todo.prototype.getCount = function(){
	return this.todos.length;
}

Todo.prototype.doAsync = function(cb){
	setTimeout(cb,2000,true);
}

module.exports = Todo;
ここではdoAsyncにおけるsetTimeoutdeの3番目のパラメータの使用について、参照できます.
http://www.cnblogs.com/snandy/archive/2011/05/18/2050315.html
ここでの3番目のパラメータは主にsetTimeoutコールバック関数のパラメータとして使用されます.
まず、断言中のequalとnotEqualの使用です.
var assert = require('assert');
var Todo = require('./Todo');

var todo = new Todo();
var testsCompleted = 0;

//  equal       
function deleteTest(){
	todo.add('Delete Me');
	//s  equal,                       
	assert.equal(todo.getCount(),1,'         ');
	todo.deleteAll();
	//  notEqual,                ,       ,         
	assert.notEqual(todo.getCount(),1,'        ');
	testsCompleted++;
}

断言するok方法は非同期方法の値が予想通りかどうかをテストするために使われます.(ここで直接Trueに戻ります.)
function doAsyncTest(cb){
	todo.doAsync(function(value){
		assert.ok(value,'        true');
	});
}
equalとnotEqual以外に、astertモジュールはこの二つの断言の厳格なバージョンを提供しています.
それらは厳格な等しいオペレータ(==)を使用して、より人付き合いのよい(=)ではありません.
対象を比較するために、astertモジュールはdeepEqualとnot DeepEqualを提供します.
これらの断言名称のdeepは、それらが2つのオブジェクトを再帰的に比較し、2つのオブジェクトの属性を比較し、属性がオブジェクトである場合、属性の比較を継続することを示している.