为什么EasyMock的IArgumentMatcher接口使用StringBuffer?

时间:2011-06-06 16:20:20

标签: java easymock

EasyMock允许您创建自己的匹配器,以便您可以指定模拟应该返回某些输入的内容。为此,您需要创建IArgumentMatcher interface的自定义实现。

此界面有两种方法:

boolean matches(Object argument);
void appendTo(StringBuffer buffer) 

如果匹配失败,appendTo()方法用于打印人类可读的消息。为什么要求您将消息附加到StringBuffer而不是简单地返回一个String?为什么不在接口上使用以下方法呢?

String message();

1 个答案:

答案 0 :(得分:3)

StringBuffer这里实际上是个不错的选择。如果您在给定情况下使用多个匹配器,则StringBuffer的使用允许一次合并和检索所有消息。

如果您使用void message();方法,则必须为您关注的每个匹配器调用该方法(这显然是次优的)。