显示断言失败的期望值和实际值

时间:2019-01-17 19:40:14

标签: node.js typescript assert

为测试编写断言时,断言失败无法提供足够的信息,而无需打开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)

任何建议将不胜感激。

谢谢!

1 个答案:

答案 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)

希望有帮助!