![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Aazmandius |
|
|||
![]() O_o ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 29.4.2006 Где: Vancouver Репутация: нет Всего: 6 |
Какие существуют приемы, позволяющие это сделать? Типичный случай - есть обработчик ввода с клавиатуры, умеет валидировать введенные символы, в случае ошибки выводит в консоль соответствующее сообщение, и нужно написать тест для него.
|
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 1 Всего: 159 |
Взаимодействие класса с консолью в общем случае является взаимодействием с OutputStream. Более того, это stateless взаимодействие, а значит нужно делать проверку поведения, а не состояния. Проверка будет заключаться в подмене объекта консоли на некий Mock объект, который будет ожидать определенных вызовов в определенных ситуациях.
|
|||
|
||||
Старовъръ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.5.2008 Репутация: 2 Всего: 10 |
Использование статических методов имеет те же недостатки, что и другие виды global state. Например, вызов System.getCurrentTime() или new Date() никак не замокать, если не применять моск
![]() -------------------- |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Design, Quality, Testing | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |