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

标签 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并希望编写一个测试来验证是否抛出了断言异常。我不能只测试是否抛出另一个错误,因为断言本质上是一个早期防护。错误的输入最终会引发错误。

最佳答案

您可以与 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 属性将与引发的异常进行比较。

关于node.js - 如何测试 node.js 中是否抛出特定异常并点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29868858/

相关文章:

javascript - 如何使用 momentjs 从 firebase 检索多个值?

javascript - 客户端如何同步调用服务端?

node.js - 如何在 mongodb Node.js 中使用字符串字段填充 _id 字段?

.net - 强制执行单元测试不应该与实时数据库/Web 服务对话是否合理?

javascript - 如何在node-tap中使用beforeEach?

android - OnTap 监听器实现

javascript - 使用 Mocha & Chai 进行 Node 测试 -> 错误.. TypeError : app. 地址不是函数

c# - 如何使用将验证考虑在内的构建器自动创建测试数据

.net - 如何从构建日志中删除批准的调试信息

iphone - UITapGestureRecognizer 和自动校正