JavaRush/Java блог/Архив info.javarush/Ввод тестовых данных в программу
myromeu
11 уровень

Ввод тестовых данных в программу

Статья из группы Архив info.javarush
участников
Добрый день, уважаемые Джаварашеры! Вот в связи с прохождением курса возник вопрос, а как вы тестируете написанные вами классы? Например в задании на сортировку 20 переменных надоедало каждый запуск вводить эти 20 цифр и нажимать "enter".. Может быть вы подскажите как можно автоматизировать запуск метода main() и ввода такого количества данных?? P.S. Как по мне так проще написать еще пару строк кода, чем как "обезьянка" тыкать в кнопочки для тестирования небольшого изменения в бесконечном количстве этих if'ов.
Комментарии (5)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Sdu
Уровень 17
26 декабря 2014, 19:15
Вариантов большое количество, например:
1) Самый простой — копировать/вставить. Программа остается как есть, после запуска в поле ввода вставляете скопированные, заранее приготовленные данные (да, сразу все 20 строк). Жмете Enter. результат аналогичен двадцати введенным вручную строкам.
2) Простой — подмена источника ввода данных. На время решения, тестирования задачи вместо ввода с клавиатуры Array/List/Map/Переменные заполняете жестко в программе. Т.е. фактически данные Вы набираете один раз. Тут главное перед отправкой на проверку не забыть прописать «нужный ввод»)
3) Продвинутый — JUnit с вариациями. Расписывать не буду, все гуглится. Этот способ самый верный в плане прокачки программера. Понадобится в жизни в любом случае. Однозначно must have, но требуется доп.время на освоение.

Изложил основные, на мой взгляд, варианты. В принципе, думаю этого достаточно.
myromeu
Уровень 11
26 декабря 2014, 19:20
JUnit это интересно, слышал про него… Где можно об этом прочитать на том уровне, который требуется для моей задачи?
Я думал, что еще как вариант можно писать дополнительный свой класс со своим main() и оттуда запускать программу, вводя данные автоматически( т.е. перенаправляя ввод или как это называется?). Хотя наверное получится тоже самое как при задании переменных жестко в программе.
Sdu
Уровень 17
26 декабря 2014, 20:23
JUnit это интересно, слышал про него… Где можно об этом прочитать на том уровне, который требуется для моей задачи?
На низком уровне лучше всего обойтись «копи/пастом» =) И параллельно можно начать читать про юнит-тесты (модульное тестирование). Конкретные источники не назову, на примете ничего нет, но вообще информация в интернете присутствует.
О том как использовать JUnit с Idea вроде можно почитать на сайте JetBrains (на английском). Опять-таки, поиск в помощь.
Я думал, что еще как вариант можно писать дополнительный свой класс со своим main() и оттуда запускать программу, вводя данные автоматически( т.е. перенаправляя ввод или как это называется?). Хотя наверное получится тоже самое как при задании переменных жестко в программе.
Да, все верно, разница не большая. Просто решение программы разбивается на методы, выполняющие разные функции: ввод данных, обработка данных, вывод на экран и т.д. Можно написать несколько методов ввода данных, различающихся по механике ввода и в main вызывать нужный. Но опять же, если уровень знаний совсем начальный, то не стоит пока с этим заморачиваться, это может только запутать.
myromeu
Уровень 11
26 декабря 2014, 20:28
Спасибо за советы. Помог прояснить ситуацию=)
Sdu
Уровень 17
26 декабря 2014, 21:02
Не за что, главное чтобы на пользу пошло :)