在Node.js中,可以利用assert模块进行断言处理,即书写一些判断用测试代码,如果判断结果为假,则抛出AssertionError异常。

判断两个值是否相等

assert.equal(actual, expected, [message])
  • actual:实际值
  • expected:预期值
  • message:自定义异常信息

    判断两个值不相等

    assert.notEqual(actual, expected, [message])
  • actual:实际值
  • expected:预期值
  • message:自定义异常信息
equal方法与notEqual方法仅对两个值进行比较判断,并不连同两个值的数据类型一起判断。

判断两个值是否相等并且数据类型相等

如果需要对两个值及其数据类型是否相等进行判断,则需要使用strictEqual方法(在Node.js内部使用“===”操作符进行判断)

assert.strictEqual(actual, expected, [message])

判断两个值不相等或者数据类型不相等

assert.notStrictEqual(actual, expected, [message])

直接判断某个值是否为真

assert.ok(value, [message])

深层次比较相等

assert.deepEqual(actual, expected, [message])

深层次比较不相等

assert.notDeepEqual(actual, expected, [message])

判断该函数中是否会抛出一个异常

throws方法用于执行一个函数中的代码并判断该函数中是否会抛出一个异常,如果判断结果为真(函数中抛出异常),则不抛出AssertionError异常,如果判断为假(函数中不抛出异常),则抛出AssertionError异常。

assert.throws(block, [error], [message])
  • block:一个函数
  • error:为一个返回true或返回false的函数,用于控制是否抛出在第一个参数值函数中指定抛出的异常,如果第二个参数值返回false,则抛出该异常
  • message:用于在AssertionError异常中添加一个附加的自定义错误信息(仅在抛出AssertionError异常时有效),可以不书写第二个参数而直接指定第三个参数

doesNotThrow方法用于执行一个函数中的代码并判断该函数是否不会抛出一个异常,如果判断为真(函数中不抛出异常),则正常执行该函数,如果判断为假(函数中抛出异常),则抛出该异常或AssertionError异常(根据doesNotThrow方法中的第二个参数而定)。

assert.doesNotThrow(block, [error], [message])