c++ - 谷歌测试中的数组比较?

标签 c++ unit-testing googletest

我希望在谷歌测试中比较两个数组。在 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 只需要类上的 iteratorssize() 方法才能工作?所以它不仅适用于 STL 的任何容器,也适用于自定义容器。

Google Mock 声称几乎与 Google Test 一样便携,坦率地说,我不明白您为什么不使用它。简直太棒了。

关于c++ - 谷歌测试中的数组比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1460703/

相关文章:

c++ - 使用 gtest 模拟 boost 共享内存派生类

c++ - 使用 Gmock 模拟参数化构造函数

c++ - 使用 sed 将文本文件转换为 C 字符串

node.js - 调试 mocha 测试的阻力最小的途径是什么?

.net - Visual Studio 2008 单元测试 : How to execute one by one?

visual-studio - 如何在Visual Studio中设置$(OutDir),$(TargetName),$(TargetExt)和%(Lib.OutputFile)?

c++ - QtableWidget : How to find value in specific column

C++ 通用 Unicode

c++ - Lambda 到函数指针适配器的理解

java - 使用 Android Studio : NoClassDefFoundError: org/testng/TestNG 进行测试