我在C ++中定义了自己的类DoubleMatrix。如何使用不同的错误消息为其编写gtest单元测试,例如:尺寸不匹配或不匹配的数量?
我需要像这段代码一样实现smth
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)
答案 0 :(得分:1)
您可以定义自定义谓词来执行相同的操作。
您可以查看https://github.com/google/googletest/blob/master/googletest/docs/advanced.md了解详情。 (查看链接中的 Predicate断言以获得更好的错误消息部分)
例如,您可以拥有一个功能:
bool foo(DoubleMatrix a, DoubleMatrix b) {
// do the comparison and return true or false }
通过EXPECT_PRED2(foo,a,b);
使用此功能