Hippomocks:如何只期望传递给ExpectCall()的一些参数?

时间:2013-06-12 12:00:54

标签: c++ mocking hippomocks

在模拟框架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 for flat functions。

第二个注释:Hippomocks提供了名为“Match()”,“getArgs()”,“assignArgs()”和“matchesArgs()”的期望方法,但我也没有找到任何文档,也不知道它们是否存在是用于(对于我的用例)或不用。

1 个答案:

答案 0 :(得分:2)

传递一个不关心的参数:

m_mockRepository_p->ExpectCall(someObject_p, Class::Method).With(1, _);