如何测试node.js中是否抛出了特定异常并点击

如何测试node.js中是否抛出了特定异常并点击,node.js,unit-testing,tap,Node.js,Unit Testing,Tap,我在方法上使用assert(…)来验证参数,例如 var assert = require('assert') function someFunction(a, b, c) { assert(a, 'a required') assert(b, 'b required') assert(c, 'c required') } 我正在使用并希望编写一个测试来验证是否引发了断言异常。我不能仅仅测试是否抛出了另一个错误,因为断言本质上是一个早期保护。错误输入最终将抛出错误。您将与t.th

我在方法上使用
assert(…)
来验证参数,例如

var assert = require('assert')

function someFunction(a, b, c) {
  assert(a, 'a required')
  assert(b, 'b required')
  assert(c, 'c required')
}

我正在使用并希望编写一个测试来验证是否引发了断言异常。我不能仅仅测试是否抛出了另一个错误,因为断言本质上是一个早期保护。错误输入最终将抛出错误。

您将与
t.throws()中的
assert.AssertionError
进行比较

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
属性将与抛出的异常进行比较