为测试编写断言时,断言失败无法提供足够的信息,而无需打开IDE并开始调试。
例如,我有一些使用“ assert”库的代码:
import * as assert from 'assert'
// some code
assert(someObject.getValue() === 0)
我刚得到
AssertionError [ERR_ASSERTION]: false == true
+ expected - actual
-false
+true
此错误消息不是很有意义。解决方法是,将其添加到断言中的消息中:
assert(someObject.getValue() === 0,
'\nActual: ' + someObject.getValue() +
'\nExpected: ' + 0)
是否有更好,更清洁的方法来仅显示期望值和实际值,而不覆盖每个断言上的消息?我还尝试创建一个assert
包装器,但无法从表达式中提取实际值和期望值。
编辑:assert.strictEqual
仅针对平等解决了此问题。但是,一旦包含任何其他运算符,我们就会遇到相同的问题(例如assert(someObject.getValue() > 0)
任何建议将不胜感激。
谢谢!
答案 0 :(得分:0)
您可以使用assert.strictEqual(actual, expected[, message])来获取实际/预期的错误消息,而无需第三个message参数:
import requests
from io import BytesIO
response = requests.get(url)
image_data = BytesIO(response.content)
您会收到以下错误消息:
assert.strictEqual(someObject.getValue(), 0)
希望有帮助!