首页 > 代码库 > node API assert

node API assert

1、assert.throws(block, [error], [message]):

assert.throws(    function(){        throw new Error(‘wrong‘);    },    Error);
//通过
assert.throws(    function(){        throw new Error(‘wrong‘);    },    /value/         //正则表达式);
//wrong
assert.throws(    function(){        throw new Error(‘wrong‘);    },    function(err){        console.log(‘err:‘+err);        if((err instanceof Error) && /value/.test(err) ){            return true;        }    },    ‘error‘     //好像没用啊  );
//wrong

2、assert.ifError(value):为true时异常,常用语检查回调中的error参数。 

3、assert.strictEqual(actual, expected, [message]):===

     assert.notStrictEqual(actual, expected, [message]):!==

   抛出异常时,会显示message。

4、assert.deepEqual(actual, expected, [message]):对象深度匹配

   assert.notDeepEqual(actual, expected, [message]):对象非深度匹配 

匹配规则:1.采用===比较;2.比较他们是否是Buffers,如果是则比较长度,接下来每字节每字节的比较;3.是用==比较;4.最后如果参数是object对象,则比较他们得属性长度和属性值。可以看的出来,这两个方法性能上可能要差些,所以只有在需要的时候才使用他们。 

5、assert.equal(actual, expected, [message]):简单值的比较

  assert.notEqual(actual, expected, [message]):

false:false,0,空值(‘‘),null,undefined,NaN。

6、assert(value, message), assert.ok(value, [message]):assert.equal(true, !!value, message)的简化版

7、assert.fail(actual, expected, message, operator):

assert.fail(23, 42, undefined, ‘###‘);         //23 ### 42
assert.fail(23, 42, ‘fails‘, ‘###‘);           //wrong

stackoverflow上说:在构建自己的测试框架时,operator会有用;如果message为undefined时,才会有用。

node API assert