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 或使测试更易于阅读的建议)
- 排序
actual
然后使用 Pointwise
- 将
actual
中的所有值转换为相应的 Enum
值,然后在该列表上执行 UnorderedElementsAre
和 expected
- 编写一个隐藏 1 或 2 的匹配器
我知道这是一个相对较老的问题,无论如何我认为值得一提的是 UnorderedPointwise
container matcher 可能是您要找的东西。
我有一个对象列表和一个期望值列表,这些对象可以在 运行 它们通过一个函数计算之后得到这些值。
std::vector<Objects> actual;
std::vector<Enum> expected;
bool equals(Object one, Enum two);
我希望能够使用匹配器执行类似 UnorderedElementsAre
的操作,或者使用 Pointwise
而无需等待订单。
我对解决方案有一些想法,但我正在寻找其他建议(尤其是更适合 gtest 或使测试更易于阅读的建议)
- 排序
actual
然后使用Pointwise
- 将
actual
中的所有值转换为相应的Enum
值,然后在该列表上执行UnorderedElementsAre
和expected
- 编写一个隐藏 1 或 2 的匹配器
我知道这是一个相对较老的问题,无论如何我认为值得一提的是 UnorderedPointwise
container matcher 可能是您要找的东西。