我已经在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)

最佳答案

您可以定义自定义谓词来执行相同的操作。

您可以检查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);使用它

关于c++ - 如何在C++中为我自己的类编写gtest unittest,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14173694/

10-11 23:19