Testes:
Tá horrível, precisa fatorar!
Classe fatorada
---
package testes;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertTrue;
import jornal.Carioca;
import jornal.Crianca;
import jornal.Dancarina;
import jornal.DançarinaCarioca;
import jornal.JogadorDeFutebol;
import jornal.JogadorDeFutebolComFilho;
import jornal.PessoaComFilho;
import jornal.Treinamento;
import static jornal.Pais.*;
import static jornal.Estado.*;
import static jornal.Passatempo.*;
import static jornal.Profissao.*;
import org.junit.Before;
import org.junit.Test;
public class Testes {
/*
* Sobre Ronaldinho Gaúcho, jogador de futebol da Seleção Brasileira:
* Há quase duas semanas treinando na Suíça
* o jogador contou que usa o computador para passar o tempo
* estou sempre em contato com o meu filho [João, 1].
* Ele agora já fala e sempre diz bola, quando me ouve",
* disse o atleta,
* que não é casado com a mãe da criança, uma dançarina carioca.
*/
JogadorDeFutebol ronaldinho;
Crianca joão;
PessoaComFilho mãeDoJoão;
@Before
public void setUp() throws Exception {
mãeDoJoão = new DançarinaCarioca();
joão = new Crianca(mãeDoJoão, "João", 1);
Treinamento treino = new Treinamento(12, SUÍÇA);
ronaldinho = new JogadorDeFutebolComFilho(treino, COMPUTADOR, joão);
}
@Test
public void háQuaseDuasSemanasTreinandoNaSuíça() {
Treinamento treino = ronaldinho.treinamento();
assertEquals(SUÍÇA, treino.local());
assertTrue(treino.duração() < 14);
assertTrue(treino.duração() > 10);
}
@Test
public void usaComputadorComoPassatempo() {
assertEquals(COMPUTADOR, ronaldinho.passatempo());
}
@Test
public void temFilhoChamadoJoão() {
assertEquals("João", joão.nome());
}
@Test
public void oFilhoTem1Ano() {
assertTrue(joão.idade() == 1);
}
@Test
public void nãoÉCasadoComAMãeDoFilho() {
assertNotSame(mãeDoJoão, ((PessoaComFilho) ronaldinho).conjugue());
}
@Test
public void mãeDoFilhoÉDançarinaCarioca() {
assertEquals(DANÇARINA, ((Dancarina) mãeDoJoão).profissão());
assertEquals(RJ, ((Carioca) mãeDoJoão).localDeNascimento());
}
}
--
GleidsonEcheli - 10 Oct 2006