2015-02-04 4 views
0

Я использую gtest & gmock и хочу установить ожидания на функцию, вызываемую набором. Я хочу убедиться, что этот набор содержит несколько элементов.EXPECT_CALL проверить, содержит ли параметр заданное подмножество

Что-то вроде этого:

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.

ответ

2

Просто глядя на документы AllOf() принимает кучу matchers, из которых один из является:

Contains(e)
аргумент содержит элемент, который соответствует е, который может быть либо значение или согласовани.

Так что я бы предположил:

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

Да. Вы правы, не думали об этом так :) Я приму ответ, как только это позволит мне это сделать. –