0

在模拟框架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() - 这是非常合理的。

注意:当我使用 ExpectCall 时,我已将问题标记为 C++,但我想这同样适用于平面函数的 ExpectCallFunc。

第二个注意事项:Hippomocks 提供了名为“Match()”、“getArgs()”、“assignArgs()”和“matchesArgs()”的预期方法,但我没有找到任何关于它的文档,也不知道它们是否打算是否使用(对于我的用例)。

4

1 回答 1

2

传入一个 Don't-Care 作为该参数:

m_mockRepository_p->ExpectCall(someObject_p, Class::Method).With(1, _);
于 2013-06-12T12:46:29.413 回答