0

我在 C++ 中定义了我自己的类 DoubleMatrix。如何使用不同的错误消息为它编写 gtest 单元测试,例如尺寸不匹配或不匹配的数量?

我需要像这段代码一样实现

for (int i = 0; i < x.size(); ++i) {
  EXPECT_EQ(x[i], y[i]) << "Vectors x and y differ at index " << i;
}

但它应该这样调用:

DoubleMatrix a, b;
EXPECT_EQ(a, b) 

或者

DoubleMatrix a, b;
double epsilon = 0.0001;
EXPECT_NEAR(a, b, epsilon)
4

1 回答 1

1

您可以定义自定义谓词来做同样的事情。

您可以查看https://github.com/google/googletest/blob/master/googletest/docs/advanced.md了解详情。(检查链接中更好的错误消息部分的谓词断言)

例如,你可以有一个函数:

bool foo(DoubleMatrix a, DoubleMatrix b) {
// do the comparison and return true or false }

通过 EXPECT_PRED2(foo, a, b); 使用它

于 2013-01-05T17:55:59.257 回答