我在验证参数的方法上使用assert(...)
,例如
var assert = require('assert')
function someFunction(a, b, c) {
assert(a, 'a required')
assert(b, 'b required')
assert(c, 'c required')
}
我正在使用tap并且想编写一个测试来验证是否抛出了断言异常。我不能只测试抛出另一个错误,因为断言本质上是一个早期保护。输入错误最终会引发错误。
答案 0 :(得分:3)
您与assert.AssertionError
中的t.throws()
进行比较,例如
var test = require('tap').test
test('calling someFunction without arguments', function(t){
t.throws(function(){
someFunction()
}, new assert.AssertionError({
message: 'a required'
}), 'throws assert error')
t.end()
})
AssertionError
在其构造函数中获取一个对象,其.message
属性将与抛出的异常进行比较。