Все,Тестирование консольных приложений/программ - Java
Я написал приложение PhoneBook на Java, основанное на командной строке. Приложение в основном запрашивает некоторые детали пользователя, такие как имя, возраст, адрес и номера телефонов, и сохраняет их в файле. Другие операции включают поиск PhoneBook по имени, номеру телефона и т. Д. Все данные вводятся через консоль.
Я пытаюсь написать тестовые примеры JUnit для каждой из функциональных возможностей, которые я реализовал, но не смог определить, как перенаправить System.in
в код реализации на что-то в моих методах тестирования JUnit, которые будут предоставлять эти значения, когда мои фактические код останавливается для ввода пользователем?
Пример:
Моего код реализации имеет:
BufferedReader is = new BufferedReader (new InputStreamReader(System.in));
System.out.println("Please enter your name:");
String name = is.readLine(); // My test cases stop at this line. How can I pass command line values i.e. redirect System.in to my test based values?
Надеется, что это имеет смысл
Вы можете найти пример кода, чтобы сделать то, что вы здесь описываете: http://illegalargumentexception.blogspot.com/2010/09/java-systemconsole-ides-and-testing.html Но это в значительной степени просто способ реализовать то, что oxbow_lakes описывает в своем ответе. – McDowell