How do I test the System.out.println () method? The method I want to test displays the phrase:
Enter the name >
How do I test if this sentence was changed or not changed in the Test class?
Main class:
public class Cliente extends PessoaFisica {
protected static Cliente pegarDados() {
String nome, estado, cidade;
int cpf, telefone, numeroConvenio;
System.out.println("Informe o nome");
nome = Clinica.entrada.nextLine();
System.out.println("Informe CPF");
cpf = Clinica.readInt();
System.out.println("Informe telefone");
telefone = Clinica.readInt();
System.out.println("Informe o estado");
estado = Clinica.entrada.nextLine();
System.out.println("Informe a cidade");
cidade = Clinica.entrada.nextLine();
System.out.println("Informe o número do do convênio");
numeroConvenio = Clinica.readInt();
Cliente cliente = new Cliente(nome, cpf, telefone, estado, cidade, numeroConvenio);
return cliente;
}
test class
import java.io.ByteArrayInputStream;
import org.junit.Assert;
import org.junit.Test;
public class ClienteTest {
public void pegarDadosTest() {
String nome = "André Nascimento";
ByteArrayInputStream entradaTest = new ByteArrayInputStream(
nome.getBytes());
System.setIn(entradaTest);
String esperado = "Informe nome" + System.getProperty("line.separator");
Cliente.pegarDados();
String atual = entradaTest.toString();
Assert.assertEquals("metodo pegarDados falhou.", esperado, atual);
}