| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Design, Quality, Testing > Тестирование ввода\вывода с консоли |
| Автор: Aazmandius 7.10.2010, 09:43 |
| Какие существуют приемы, позволяющие это сделать? Типичный случай - есть обработчик ввода с клавиатуры, умеет валидировать введенные символы, в случае ошибки выводит в консоль соответствующее сообщение, и нужно написать тест для него. |
| Автор: powerOn 7.10.2010, 10:14 |
| Взаимодействие класса с консолью в общем случае является взаимодействием с OutputStream. Более того, это stateless взаимодействие, а значит нужно делать http://xunitpatterns.com/Behavior%20Verification.html, а не состояния. Проверка будет заключаться в подмене объекта консоли на некий Mock объект, который будет ожидать определенных вызовов в определенных ситуациях. |
| Автор: Старовъръ 8.10.2010, 18:35 |
| Использование статических методов имеет те же недостатки, что и другие виды global state. Например, вызов System.getCurrentTime() или new Date() никак не замокать, если не применять моск |