EXPECT_CALL 检查参数是否包含给定的子集
EXPECT_CALL check if parameter contains given subset
我正在使用 gtest & gmock 并希望对使用集合调用的函数设置期望值。我想确保此集合包含多个元素。
像这样:
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)));
但我对传递的所有其他元素不感兴趣,我只需要确保此集合包含 c5
和 c6
。
只要看看文档 AllOf()
就需要一堆匹配器,其中一个是:
Contains(e)
argument contains an element that matches e, which can be either a value or a matcher.
所以我猜:
EXPECT_CALL(*mView, SetHighlightedCells(AllOf(Contains(c5), Contains(c6))));
我正在使用 gtest & gmock 并希望对使用集合调用的函数设置期望值。我想确保此集合包含多个元素。
像这样:
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)));
但我对传递的所有其他元素不感兴趣,我只需要确保此集合包含 c5
和 c6
。
只要看看文档 AllOf()
就需要一堆匹配器,其中一个是:
Contains(e)
argument contains an element that matches e, which can be either a value or a matcher.
所以我猜:
EXPECT_CALL(*mView, SetHighlightedCells(AllOf(Contains(c5), Contains(c6))));