我正在使用assert
模块来引发前提条件错误。在我看来,根据documentation,assert.fail(message)
应该抛出一个异常,其中message
属性只是传入的消息。但是,它被设置为任何消息被包装在单引号中,然后是undefined undefined
。意外的结果来自assert.fail
这是我使用的版本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。我误解了我正在使用的内容,尽管我确实希望在浏览器(实际上是Electron)以及后端中使用它。我也一直在讨论源代码,并且转过身来期待我用来*标准的'assert'。它看起来像'require('assert')'应该没有安装任何东西,但是。 我正在学习技术堆栈,对我的部分项目进行隔离,目前正在编写单元测试。我无法弄清楚为什么我的'assert.fail'异常信息总是错误的。 感谢您的回答! –