В насмешливых рамках Hippomocks можно проверить переданные аргументы в ожидании. Например:
void Class::Method(int arg1);
...
m_mockRepository_p->ExpectCall(someObject_p, Class::Method).With(1);
Есть ли возможность проверить только некоторые из переданных аргументов? Что я должен написать вместо ??? в следующем коде?
void Class::Method(int arg1, char* buffer_p);
...
m_mockRepository_p->ExpectCall(someObject_p, Class::Method).With(1,???);
Для вашей информации: Вариант использования: someObjet_p внутренне создает буфер для чтения данных в нем и передает его в Class :: Method. Во-первых, мне все равно, в какой буфер someObject_p хотел бы вставить данные. Во-вторых, у меня нет доступа к внутренним компонентам someObject_p для передачи их в With () — что вполне разумно.
Примечание: я пометил вопрос как C ++, так как я использую ExpectCall, но я предполагаю, что то же самое применимо к ExpectCallFunc для плоских функций.
Второе примечание: Hippomocks предоставляет методы для ожиданий с именами «Match ()», «getArgs ()», «assignArgs ()» и «matchArgs ()», но я не нашел никакой документации по нему и не знаю, предназначены ли они для использоваться (для моего случая использования) или нет.
Передайте в поле Not-Care этот параметр:
m_mockRepository_p->ExpectCall(someObject_p, Class::Method).With(1, _);
Других решений пока нет …