如何使用类实例或结构实例作为“with”部分中的参数之一来设置期望调用?该文档似乎没有显示如何做到这一点。我看到使用简单的参数,如字符串和整数 - 但不是类实例。您通常只是将该参数设置为“_”并完成它吗?
问问题
546 次
2 回答
0
对于相等的可比较实例,您可以传递一个实例并使用它。
对于无法比较的实例,无法确定参数是否与您在 .With 中输入的内容匹配,因此无法编译。您需要以某种方式使它们具有可比性,以允许 Hippomocks 确定您的呼叫是否匹配。
于 2015-03-26T09:52:09.523 回答
0
达斯坎迪已经解释过了。
解决方案是,提供您自己的比较器实现,例如上面的示例:
inline bool operator==(const MyStruct& lhs, const MyStruct& rhs)
{
if ((lhs.a == rhs.a) && (lhs.b == rhs.b))
{
return true;
}
return false;
}
这使得编译器关闭并且测试按预期工作:
TEST(check_CanCompareStructArguments)
{
MockRepository mocks;
IStruct* is = mocks.Mock<IStruct>();
MyStruct ms;
ms.a = 5;
ms.b = 7;
mocks.ExpectCall(is, IStruct::A).With(ms);
is->A(ms);
}
于 2016-08-04T13:18:09.920 回答