如果匹配失败,Google模拟打印消息如下所示:
test.cpp:112: EXPECT_CALL(mock_obj,foo( MyMatcher( bar )) 预期arg #0:等于1,2;3,4 实际:{1} 预期:只需调用一次 实战:从来没有打过电话--不满意和活跃
使用自定义匹配器MyMatcher,我可以定义一个描述字符串,用于在匹配失败时生成失败消息。但它只定义了消息的预期arg #0部分。有任何方法可以定制实际的打印方式吗?
在我的例子中,我不能重载operator<<类的bar,因为它已经被第三方代码重载了,不在我的控制范围之内(这个库为它定义了bar和operator<<类)。
发布于 2013-03-13 10:03:03
由于我是无法为定义operator <<,所以google测试可以为class定义PrintTo函数。谢谢RA的链接。
用户可以通过在定义Foo的名称空间中定义PrintTo()重载来覆盖类类型Foo的此行为。我们给用户这个选项,因为有时为Foo定义<<运算符是不可取的(例如,编码风格可能会阻止这样做,或者已经有了一个<<操作符,但它没有按照用户的要求来做)。
void PrintTo(const Bar& value, ::std::ostream* os);https://stackoverflow.com/questions/15349116
复制相似问题