java - 为什么 EasyMock 的 IArgumentMatcher 接口(interface)使用 StringBuffer?

标签 java easymock

EasyMock 允许您创建自己的匹配器,以便您可以指定模拟应该为某些输入返回什么。为此,您创建了他们的 IArgumentMatcher interface 的自定义实现。 .

这个接口(interface)有两个方法:

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

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

String message();

最佳答案

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

如果您使用 void message(); 方法,您将不得不为您关心的每个匹配器调用它(这显然是次优的)。

关于java - 为什么 EasyMock 的 IArgumentMatcher 接口(interface)使用 StringBuffer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6254994/

相关文章:

java - Easymock 不兼容的返回值类型错误

java - EasyMock.anyObject() 是否匹配空参数?

java - 如何让java拥有在macOS上读写文件的权限?

java - Log4 使用十六进制代码记录 HTTP 响应

java - 如何将 react 流连接到 quarkus/smallrye 中的 AMQP 代理

java - 使用 PowerMock- EasyMock 时意外的方法调用

java - android4.4设备恢复出厂设置后,系统app收不到BOOT_COMPLETED广播

java - Java流中continue关键字的等价物?

java - EasyMock:如何测试这个方法

java - Easymock:mock正在执行