以参数为指针的模拟函数

Mock function with arguments as pointer

我有一个功能:

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);

您可以使用普通函数或 lambda 来编写

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);