c++ - googletest 有没有办法为被调用函数中的断言生成调用者行号?
问题描述
我正在一个 C++14 项目中编写一些单元测试,我经常想检查大量的不变量。这样做的自然方法是创建一个方法:
void validateState(const Model& model, int offset) {
ASSERT_EQ(model.ax * model.bx, model.cx * offset);
ASSERT_NE(model.base, offset);
...
}
问题是如果这些断言失败,我会得到方法的行号。有没有办法让 googletest 打印调用者的行号,以及失败的特定断言?
解决方案
是的,有一种内置方式:SCOPED_TRACE(请参阅https://github.com/google/googletest/blob/master/googletest/docs/advanced.md#using-assertions-in-sub-routines)的作用你要。
推荐阅读
- python - Pandas - 用空值替换行并删除匹配两个条件的行
- reactjs - 如何测试可以将 html 元素的 ref 传递给它的反应钩子
- mysql - innodb 损坏的数据库 - 恢复事件和函数
- numpy - 什么样的 x 适合 argsort(x) == argsort(argsort(x))?
- c# - 在哪里放置需要实例化 GoogleMaps 地图的后台任务?
- python - 将外部参数转换为列表
- if-statement - 我需要一个单元格根据第三个单元格中的代码字从另一个数字中减去一个数字
- android - 如何在 iOS 上使用 Cordova 进行应用内购买 (IAP)?
- python - 长度为 n 的列表,其中 p 随机分配,否则为零
- node.js - 带有 if 和 else 语句的 forEach 循环