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

时间:2015-04-25 18:11:11

标签: 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')
}

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

1 个答案:

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