Simulando testes de System.in com JUnit
No domínio dos testes de software, muitas vezes enfrentamos o desafio de simular a entrada do usuário ao lidar com programas de linha de comando. Quando um programa solicita entrada via System.in, como automatizar esse comportamento em testes JUnit?
Solução
Para ignorar System.in e injetar entrada simulada do usuário , siga estas etapas:
Alternar System.in dinamicamente:
Use fluxos Java 8 para manipular o System.in fluxo. Por exemplo:
String data = "Hello, World!\r\n";
InputStream stdin = System.in;
try {
System.setIn(new ByteArrayInputStream(data.getBytes()));
Scanner scanner = new Scanner(System.in);
System.out.println(scanner.nextLine());
} finally {
System.setIn(stdin);
}
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3