我正在使用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'異常信息總是錯誤的。 感謝您的回答! –