在为我的测试编写Assert时,如果不打开IDE并开始调试,Assert失败就无法提供足够的信息。
例如,我有一些使用'assert'库的代码:
import * as assert from 'assert'
// some code
assert(someObject.getValue() === 0)
我只是得到
AssertionError [ERR_ASSERTION]: false == true
+ expected - actual
-false
+true
此错误消息实际上没有意义。作为一种变通方法,我在Assert的消息中添加了它:
assert(someObject.getValue() === 0,
'\nActual: ' + someObject.getValue() +
'\nExpected: ' + 0)
有没有更好、更干净的方法来显示预期值和实际值,而不覆盖每个Assert上的消息?我还尝试创建一个assert
Package 器,但无法从表达式中提取实际值和预期值。
编辑:assert.strictEqual
解决了这个问题的平等只。但是,一旦任何其他运营商被包括在内,那么我们有同样的问题(例如,assert(someObject.getValue() > 0)
任何建议将不胜感激。
谢谢你,谢谢
2条答案
按热度按时间1hdlvixo1#
您可以使用
AssertionError
来实现这一点,在调用assert
时将其作为第二个参数传递。例如,我们想检查synon数据是否与真实的数据匹配:这将抛出一个错误:
nbysray52#
你可以使用assert.strictEqual(actual,expected[,message])来获取实际的/预期的错误消息,而不需要第三个消息参数:
你会得到一个错误消息,如:
希望这有帮助!