gtest 期望无序元素与自定义 comparator/matcher

gtest expect unordered elements are with custom comparator/matcher

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

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 container matcher 可能是您要找的东西。