如何使用 google-test 检查向量中的内容?

Luk*_*ner 1 c++ googletest

std::vector<uint8_t> vector1(10);
std::vector<uint8_t> vector2(10);

std::fill(vector1.begin(), vector1.end(), 2);
std::fill(vector2.begin(), vector2.end(), 2);

EXPECT_EQ(vector1, vector2);
Run Code Online (Sandbox Code Playgroud)

上面的 EXPECT_EQ() 是否检查向量 1 和向量 2 中的内容是否相等?如果不是,如何使用 googletest EXPECT_* 函数检查向量 1 和向量 2 中的内容是否相等?

googletest 的文档解释了如何测试 C 字符串和 C++ 字符串对象的内容,但没有解释如何检查 C++ 向量的内容。

Yks*_*nen 7

EXPECT_EQ用于operator ==比较对象,以及operator ==forstd::vector(引用自 cppreference):

lhs检查和 的内容是否rhs相等,即它们具有相同数量的元素,并且中的每个元素与相同位置的lhs元素进行比较。rhs

所以答案是肯定的,它会比较向量的内容。