EXPECT_CALL检查参数是否包含给定的子集

EXPECT_CALL check if parameter contains given subset

本文关键字:子集 包含 是否 CALL 检查 参数 EXPECT      更新时间:2023-10-16

我正在使用gtest&gmock,并希望对使用set调用的函数设置期望。我想确保这个集合包含几个元素。

像这样:

EXPECT_CALL(*mView, SetHighlightedCells(Contains(AllOf(c5, c6))));

我知道我可以指定全套,

EXPECT_CALL(*mView, SetHighlightedCells(UnorderedElementsAre(c5, c6, ...and all the rest..)));

EXPECT_CALL(*mView, SetHighlightedCells(UnorderedElementsAreArray(vector_containing_c5_c6_and_ALL_other_elements)));

但我对传递的所有其他元素都不感兴趣,我只需要确保这个集合包含c5c6

仅查看文档AllOf()需要一堆匹配器,其中之一是:


Contains(e) 参数包含与 e 匹配的元素,该元素可以是值或匹配器。

所以我猜:

EXPECT_CALL(*mView, SetHighlightedCells(AllOf(Contains(c5), Contains(c6))));