У меня есть класс, который выполняет следующие действияМоя собственная реализация PrintStream для тестирования
class PersonDumper {
// attributes
public PersonDumper(PrintStream output, Set<Person> persons) {
// do stuff
}
public dump() {
for(Person p : persons) {
output.print(p);
output.print(",");
}
}
}
Дело в том, что я хочу, чтобы проверить, что форматирование Даю к объектам Person (в данном примере я хочу напечатать метод toString()) и т. д. правильно.
Тогда я хотел бы протестировать выход с чем-то вроде этого:
public class ListPrintStream extends PrintStream {
private List<List<String>> output;
// every time I call to print I do output.add(string)
}
Тогда, я могу получить, что список> и прочитать его, чтобы проверить, если я вывод, что я хочу.
Но у меня проблемы с конструктором, используемым для PrintStream. Потому что, в моем случае, я не хочу аргументов для конструктора.
Считаете ли вы, что я использую хороший подход? Должен ли я использовать класс OutputStream вместо PrintStream? Подсказка?
Edit спросить:
Кто-нибудь знает PrintStream, который используется для тестирования?