我希望在谷歌测试中比较两个数组。在 UnitTest++ 中,这是通过 CHECK_ARRAY_EQUAL 完成的。 google test 你是怎么做的?
最佳答案
我真的建议查看 Google C++ Mocking Framework .即使您不想模拟任何东西,它也可以让您轻松编写相当复杂的断言。
例如
//checks that vector v is {5, 10, 15}
ASSERT_THAT(v, ElementsAre(5, 10, 15));
//checks that map m only have elements 1 => 10, 2 => 20
ASSERT_THAT(m, ElementsAre(Pair(1, 10), Pair(2, 20)));
//checks that in vector v all the elements are greater than 10 and less than 20
ASSERT_THAT(v, Each(AllOf(Gt(10), Lt(20))));
//checks that vector v consist of
// 5, number greater than 10, anything.
ASSERT_THAT(v, ElementsAre(5, Gt(10), _));
有很多 matchers对于每一种可能的情况,您可以将它们组合起来以实现几乎任何目标。
我是否告诉过您 ElementsAre
只需要类上的 iterators
和 size()
方法才能工作?所以它不仅适用于 STL 的任何容器,也适用于自定义容器。
Google Mock 声称几乎与 Google Test 一样便携,坦率地说,我不明白您为什么不使用它。简直太棒了。
关于c++ - 谷歌测试中的数组比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1460703/