Макет функции с аргументами в качестве указателя - PullRequest
3 голосов
/ 17 мая 2019

У меня есть функция:

void setData(int *ptr) {
   *ptr = 3
};

Могу ли я использовать Hippomock, чтобы высмеивать эту функцию и установить значение ptr?Что-то вроде: mock.OnCallFunc(setData).With(int *ptr).Do({ *ptr = 5;});

Так что я могу сделать что-то подобное позже

int p;
setData(&p);
printf("value of p is suppose to be 5: %d\n", p);

1 Ответ

3 голосов
/ 20 мая 2019

Вы можете написать с нормальной функцией или с лямбда

void setDataMock(int *ptr) {
  *ptr = 5;
}
MockRepository mocks;
mocks.OnCallFunc(setData).Do(setDataMock);
// Or
mocks.OnCallFunc(setData).Do([](int *ptr) {
  *ptr = 5;
});

int p;
setData(&p);
printf("Value of p: %d\n", p);
...