Как принять ввод от пользователя в консоли Junit
Я пытаюсь написать тестовый пример Junit для функции, приведенной ниже:
class A{
int i;
void set()
{
Scanner in=new Scanner(System.in);
i=in.nextInt();
}
}
Теперь моя проблема заключается в том, что когда я создаю для него тестовый пример Junit, он не исключает входные данные от пользователя:
public void testSet() throws FileNotFoundException {
System.out.println("set");
A instance = new A();
int i=1;
instance.set(i);
// TODO review the generated test code and remove the default call to fail.
//fail("The test case is a prototype.");
}
Пожалуйста, предложите, что я должен сделать, чтобы принять ввод от пользователя.
1 ответ
Ты можешь использовать System.setIn()
чтобы смоделировать ввод пользователя:
String inputData = "user input data";
System.setIn(new java.io.ByteArrayInputStream(inputData.getBytes()));
Теперь, если вы позвоните set()
Метод будет читать данные из вашей строки, а не из стандартного ввода.