在模拟框架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()”的期望方法,但我也没有找到任何文档,也不知道它们是否存在是用于(对于我的用例)或不用。
答案 0 :(得分:2)
传递一个不关心的参数:
m_mockRepository_p->ExpectCall(someObject_p, Class::Method).With(1, _);