gtest期望无序元素具有自定义比较器/匹配器

时间:2018-09-06 13:44:05

标签: c++ c++11 googletest

我有一个对象列表和一个期望值列表,这些对象在通过函数运行它们后可以求值。

std::vector<Objects> actual;
std::vector<Enum> expected;
bool equals(Object one, Enum two);

我希望能够与匹配器进行类似UnorderedElementsAre的操作,或者使用Pointwise而不需要订购。

我对解决方案有一些想法,但是我正在寻找其他建议(尤其是gtest的本机,或者使测试更易于阅读)

  1. 排序actual,然后使用Pointwise
  2. actual中的所有值转换为相应的Enum值,然后对该列表进行UnorderedElementsAreexpected
  3. 写一个隐藏1或2的匹配器

1 个答案:

答案 0 :(得分:0)

我知道这是一个相对较老的问题,无论如何,我想值得一提的是UnorderedPointwise container matcher可能正是您想要的。