gtest 期望无序元素与自定义比较器/匹配器一起使用

gtest expect unordered elements are with custom comparator/matcher

本文关键字:一起 比较器 无序 期望 元素 自定义 gtest      更新时间:2023-10-16

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

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 的匹配器

我知道这是一个相对古老的问题,无论如何,我认为值得一提的是UnorderedPointwise容器匹配器可能是您正在寻找的。