【发布时间】:2017-10-19 00:04:42
【问题描述】:
我正在使用assert 模块来引发前置条件错误。在我看来,基于documentation,assert.fail(message) 应该抛出一个异常,其中message 属性只是传入的消息。但是,它被设置为用单引号括起来的任何消息,然后是@987654325 @。
这是我正在使用的assert 版本(1.4.1)中的错误,这是文档中的错误,还是我的理解错误?
我的代码:
$ cat assert-test.js
assert = require ("assert")
try {
assert.fail("boom")
}
catch (ex) {
console.log(ex)
}
$ node assert-test.js
{ [AssertionError: 'boom' undefined undefined]
name: 'AssertionError',
actual: 'boom',
expected: undefined,
operator: undefined,
message: '\'boom\' undefined undefined',
generatedMessage: true }
这是文档中与我相关的部分。
如果只提供消息,它将被用作错误消息,其他参数将作为属性存储在抛出的对象上
这似乎也很相关。
注意:最后两种情况是实际的,预期的,运算符没有 对错误信息的影响。
assert.fail(); // AssertionError [ERR_ASSERTION]: Failed assert.fail('boom'); // AssertionError [ERR_ASSERTION]: boom assert.fail('a', 'b'); // AssertionError [ERR_ASSERTION]: 'a' != 'b'
【问题讨论】:
标签: node.js node-assert