Gostaria de saber como faço pra de fato testar uma saída no console. Exemplo o método imprimeNaTela(String msg) . Com o JUnit eu consigo fazer esse tipo de teste?
public void imprimeNaTela(String msg) {
System.out.println(msg);
}
Gostaria de saber como faço pra de fato testar uma saída no console. Exemplo o método imprimeNaTela(String msg) . Com o JUnit eu consigo fazer esse tipo de teste?
public void imprimeNaTela(String msg) {
System.out.println(msg);
}
Consegui resolver da maneira mais próxima na qual gostaria. Resumindo, redirecionei a saída do console para um ByteArrayOutputStream e fiz um assertThat.
public class WelcomeToJavaTest {
private final ByteArrayOutputStream output = new ByteArrayOutputStream();
@BeforeEach
public void setUp() throws UnsupportedEncodingException {
PrintStream novoFluxoDeImpressao = new PrintStream(output, true, "UTF-8");
// seta o novo fluxo de saída
System.setOut(novoFluxoDeImpressao);
}
@AfterEach
public void cleanUp() {
output.reset();
}
@Test
public void verificaSeConsoleImprimeHelloWorld() {
WelcomeToJava welcomeToJava = new WelcomeToJava();
welcomeToJava.imprimeNaTela("Hello World");
assertThat(output.toString(), equalTo("Hello World"));
}
}