首页 > 解决方案 > 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 打印调用者的行号,以及失败的特定断言?

标签: c++c++14googletest

解决方案


是的,有一种内置方式:SCOPED_TRACE(请参阅https://github.com/google/googletest/blob/master/googletest/docs/advanced.md#using-assertions-in-sub-routines)的作用你要。


推荐阅读