Iniciante no JUnit - Dúvida

3 respostas
M

Pessoal,

sou meio que novo no desenvolvimento de testes, mas tenho que fazer. Estou usando o JUnit. Nesse teste a baixo, eu populo os objeto MensagemResposta e MensagemRequisicao, o processo é feito tudo certo, porém ele me apresenta um erro, disendo que o obeto encontrado é diferente do que se espera. Só que eu mando imprimir o conteudo dos dois objetos e são os mesmos, a diferença é que a instancia dos objetos é que está diferente. Alguém pode me ajudar?

public class ServiceConsultarTest extends TestCase {

    ApplicationContext applicationContext;
    MensagemRequisicao mensagem;
    MensagemResposta mensagemResposta;
    List<Cliente> clientes;
    Cliente cliente;
    PerfilBiometrico perfilBiometrico;

    public ServiceConsultarTest(String testName) {
        super(testName);
    }

    @Override
    protected void setUp() throws Exception {
        applicationContext = new ClassPathXmlApplicationContext("/applicationContext.xml");
        PerfilBiometricoDao perfilBiometricoDao = (PerfilBiometricoDao) applicationContext.getBean("perfilBiometricoDao");
        ClienteDao clienteDao = (ClienteDao) applicationContext.getBean("clienteDao");
        clientes = clienteDao.getClienteByNis("[telefone removido]");
        Iterator it = clientes.iterator();
        while (it.hasNext()) {
            cliente = (Cliente) it.next();
        }
        mensagem = new MensagemRequisicao();
        mensagem.setDedo("RF");
        mensagem.setNis("[telefone removido]");
        mensagem.setNomeAplicacao("siabm");
        mensagem.setServico(ServiceTypeEnum.consultar);
        mensagem.setUuid("01234567-8910-0258-9634-569871236546");
        perfilBiometrico = perfilBiometricoDao.getPerfilBiometrico(cliente, mensagem);
        mensagem.setTemplate(perfilBiometrico.getTemplate());
        mensagemResposta = new MensagemResposta();
        mensagemResposta.setDedo("RF");
        mensagemResposta.setAplicacao("siabm");
        mensagemResposta.setUuid("01234567-8910-0258-9634-569871236546");
        mensagemResposta.setAprovado(Boolean.TRUE);

    }

    @Override
    protected void tearDown() throws Exception {
        super.tearDown();
    }

    /**
     * Test of execute method, of class ServiceConsultar.
     */
    public void testExecute() throws Exception {
        System.out.println("execute");
        ServiceConsultar instance = new ServiceConsultar(mensagem);
        MensagemResposta expResult = mensagemResposta;
        MensagemResposta result = instance.execute(mensagem);
        assertEquals(expResult, result);

    }
}

3 Respostas

denistuning

Dá uma olhada em instanceOf.

R

Implemente equals no objeto e use:

esmiralha

Como dito acima, implemente o método equals e hashcode na classe MensagemRequisicao, mas pode usar o assertEquals, pois o mesmo chama equals no primeiro objeto passando como argumento o segundo.

Criado 14 de abril de 2010
Ultima resposta 24 de jan. de 2011
Respostas 3
Participantes 4