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时,才会有用。

posted on 2014-12-19 09:39  j.w  阅读(303)  评论(0编辑  收藏  举报