Почему интерфейс EasyMock IArgumentMatcher использует StringBuffer? - PullRequest
1 голос
/ 06 июня 2011

EasyMock позволяет вам создавать свои собственные сопоставители, чтобы вы могли указать, что макет должен возвращать для определенных входных данных. Для этого вы создаете пользовательскую реализацию их интерфейса IArgumentMatcher .

Этот интерфейс имеет два метода:

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

Метод appendTo() используется для печати удобочитаемого сообщения, если совпадение не удалось. Почему он просит вас добавить сообщение в StringBuffer, а не просто возвращать String? Почему бы не использовать следующий метод интерфейса?

String message();

1 Ответ

3 голосов
/ 06 июня 2011

StringBuffer вот на самом деле хороший выбор. Если в данной ситуации вы используете несколько сопоставлений, использование StringBuffer позволяет объединять и извлекать все сообщения за один раз.

Если бы вы использовали подход void message();, вам пришлось бы вызывать его для каждого интересующего вас совпадения (что, очевидно, является неоптимальным).

...