zoukankan      html  css  js  c++  java
  • Nodejs学习笔记——Assert(断言)

    Assert - a:actual e:expected m:message o:operator v:value b:block
    assert.fail(a, e, m, o)
    assert(v, m), assert.ok(v, [m])
    assert.equal(a, e, [m])
    assert.notEqual(a, e, [m])
    assert.deepEqual(a, e, [m])
    assert.notDeepEqual(a, e, [m])
    assert.strictEqual(a, e, [m])
    assert.notStrictEqual(a, e, [m])
    assert.throws(b, [error], [m])
    assert.doesNotThrow(b, [m])
    assert.ifError(v)
    assert.fail(a, e, m, o)

    Throws an exception that displays the values for actual and expected separated by the provided operator.

    Note: Always throws an exception and display the message which will be "actual operator expected" if it's omited.

    e.g assert.fail(1,1,"Always throws this message","=") and assert.fail(1,1,"","+")

    assert(v, [m]), assert.ok(v, [m])

    Tests if value is truthy, it is equivalent to assert.equal(true, !!value, message);

    Note: If the value isn't a truth-value, it throws and exception and display the message which will be "value == true" if it's omited.

    e.g assert(0) and assert.ok(0,"Throws me")

    assert.equal(a, e, [m])

    Tests shallow, coercive equality with the equal comparison operator ( == ).

    e.g assert.equal(1,2,"They are not equal") and assert.equal(1,1,"would not show me")

    assert.notEqual(a, e, [m])

    Tests shallow, coercive non-equality with the not equal comparison operator ( != ).

    Note: 综上,是对比结果为false时抛出异常。

    assert.deepEqual(a, e, [m])

    Tests for deep equality.

    Note: 采用以下步骤比较,只要一个步骤不匹配就抛出异常:

    1. 采用===比较;
    2. 比较他们是否是Buffers,如果是则比较长度,接下来每字节每字节比较;
    3. ==比较;
    4. 最后如果参数是Object对象,则比较他们的属性长度和属性值
    assert.notDeepEqual(a, e, [m])

    Tests for any deep inequality.

    assert.strictEqual(a, e, [m])

    Tests strict equality, as determined by the strict equality operator ( === )

    assert.notStrictEqual(a, e, [m])

    Tests strict non-equality, as determined by the strict not equal operator ( !== )

    assert.throws(b, [error], [m])

    Expects block to throw an error. error can be constructor, RegExp or validation function.

    Validate instanceof using constructor:

    assert.throws(
    	function() {
    		throw new Error("Wrong value");
    	},
    	Error
    );
    		

    Validate error message using RegExp:

    assert.throws(
    	function() {
    		throw new Error("Wrong value");
    	},
    	/value/
    );
    		

    Custom error validation:

    assert.throws(
    	function() {
    		throw new Error("Wrong value");
    	},
    	function(err) {
    		if ( (err instanceof Error) && /value/.test(err) ) {
    			return true;
    		}
    	},
    	"unexpected error"
    );
    		
    assert.doesNotThrow(b, [m])

    Expects block not to throw an error, see assert.throws for details.

    assert.ifError(v)

    Tests if value is not a false value, throws if it is a true value. Useful when testing the first argument, error in callbacks.

    Note: it throws error when the value is a truth-value!

  • 相关阅读:
    8.【原创】使用Java8中的Stream特性筛选数据
    27.【转载】如何避免回表查询,什么是索引覆盖
    17.【转载】广东省2020学位英语考试报考须知
    Java 正则?:?=?!的理解
    集合的优化操作
    ArrayList中remove方法和set(null)的区别
    POI 导入、导出Excel
    JS 跳转到新页面并用post传参
    win 10 如何关闭自动更新
    JSON定义及应用
  • 原文地址:https://www.cnblogs.com/xzhang/p/3941000.html
Copyright © 2011-2022 走看看