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);
}
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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"));
}
}