【发布时间】:2015-06-18 10:15:23
【问题描述】:
单元测试框架通常会提供非常好的断言失败消息(我使用的是 gtest)来描述特定测试的预期值和实际值。此外,您知道函数调用的来源,因为您正在测试类的接口。
相比之下,assert 在实现中用作健全性检查时会提供一些但更隐秘的信息。例如,我现在正在研究的那个。 .
Assertion failed: (latency > std::chrono::milliseconds(0)), function setLatency, file /path/to/my.cpp line 71
所以我知道哪个断言失败,但我不知道导致它失败的值是什么,更重要的是,我不知道调用 setLatency 的有问题的函数。
一个简单的解决方案通常会放到调试器中,但在这种情况下我不能这样做。是否可以从类的实现中获得更具描述性的断言消息?我怎样才能做到这一点?如有必要,我不介意使用 3rd 方库。
【问题讨论】:
-
使用 pdbs 从非剥离的可执行文件/可执行文件中提取堆栈跟踪的方法不是可移植的吗?
-
查看值 - 为什么不 if(latency
标签: c++ unit-testing assertions verbosity