livrowebservices / 1ed

36 stars 34 forks source link

Capítulo 4 #4

Open FabianoPrazeres opened 8 years ago

FabianoPrazeres commented 8 years ago

Na classe CarroTest no código da página 79, não esta executando, esta aparecendo uma exceção na linha da busca no banco de dados para confirmar se o carro foi salvo, alguém sabe o que pode ser?

diogenesd commented 8 years ago

Olá, Cole aqui o erro pra gente ver!

FabianoPrazeres commented 8 years ago

code 43 //Busca no banco de dados para confirmar que o carro foi salvo 44 c = carroService.getCarro(id); 45 assertEquals("Teste", c.getNome()); 46 assertEquals("Teste desc", c.getDesc()); 47 assertEquals("url foto aqui", c.getUrlFoto()); 48 assertEquals("url video aqui", c.getUrlVideo()); 49 assertEquals("lat", c.getLatitude()); 50 assertEquals("lng", c.getLongitude()); 51 assertEquals("tipo", c.getTipo());

@sem titulo

diogenesd commented 8 years ago

O erro está que o objeto passado está chegando nulo, o erro esta na linha 45 mas na imagem não da pra ver. faz um staktrance() para verificar melhor

FabianoPrazeres commented 8 years ago

Encontrei o erro, ela estava na classe CarroDAO, porém agora surgiu um novo erro ao compilar.

junit.framework.ComparisonFailure: expected:<Teste[ UPDATE]> but was:<Teste[]> at junit.framework.Assert.assertEquals(Assert.java:100) at junit.framework.Assert.assertEquals(Assert.java:107) at junit.framework.TestCase.assertEquals(TestCase.java:269) at test.CarroTest.testSalvarDeletarCarro(CarroTest.java:65) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at junit.framework.TestCase.runTest(TestCase.java:176) at junit.framework.TestCase.runBare(TestCase.java:141) at junit.framework.TestResult$1.protect(TestResult.java:122) at junit.framework.TestResult.runProtected(TestResult.java:142) at junit.framework.TestResult.run(TestResult.java:125) at junit.framework.TestCase.run(TestCase.java:129) at junit.framework.TestSuite.runTest(TestSuite.java:252) at junit.framework.TestSuite.run(TestSuite.java:247) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:131) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

sem titulo

diogenesd commented 8 years ago

O teste de comparação "equals" falhou, verifique os dados que está testando pra ver se são idênticos.

FabianoPrazeres commented 8 years ago

Eles não estão idênticos sem titulo

O Código fonte da classe é este abaixo: package test;

import java.util.List; import junit.framework.TestCase; import br.com.livro.domain.Carro; import br.com.livro.domain.CarroService;

public class CarroTest extends TestCase{

private CarroService carroService = new CarroService();

public void testListaCarros(){
    List<Carro>carros = carroService.getCarros();
    assertNotNull(carros);

    //Valida se encontrou algo
    assertTrue(carros.size()>0);

    //Valida se encontrou  o tucker
    Carro tucker = carroService.findByName("Tucker 1948").get(0);
    assertEquals("Tucker 1948", tucker.getNome());

    //Valida se encontrou a ferrari
    Carro ferrari = carroService.findByName("Ferrari FF").get(0);
    assertEquals("Ferrari FF", ferrari.getNome());

    //Valida se encontrou o Bugatti
    Carro bugatti = carroService.findByName("Bugatti Veyron").get(0);
    assertEquals("Bugatti Veyron", bugatti.getNome());
}

public void testSalvarDeletarCarro(){

    Carro c = new Carro();
    c.setNome("Teste");
    c.setDesc("Teste desc");
    c.setUrlFoto("url foto aqui");
    c.setUrlVideo("url video aqui");
    c.setLatitude("lat");
    c.setLongitude("lng");
    c.setTipo("tipo");
    carroService.save(c);
    Long id = c.getId();
    assertNotNull(id);

    //Busca no banco de dados para confirmar que o carro foi salvo
    c = carroService.getCarro(id);
    assertEquals("Teste", c.getNome());
    assertEquals("Teste desc", c.getDesc());
    assertEquals("url foto aqui", c.getUrlFoto());
    assertEquals("url video aqui", c.getUrlVideo());
    assertEquals("lat", c.getLatitude());
    assertEquals("lng", c.getLongitude());
    assertEquals("tipo", c.getTipo());

    //atualiza o carro
    c.setNome("Teste UPDATE");
    carroService.save(c);

    //Busca o carro novamente
    c = carroService.getCarro(id);
    assertEquals("Teste UPDATE", c.getNome());

    //deleta o carro
    carroService.delete(id);

    //Busca o carro novamente
    c = carroService.getCarro(id);

    //Desta vez o carro não existe mais.
    assertNull(c);
}

}

ghost commented 8 years ago

@FabianoPrazeres da uma olhada no meu codigo que eu fiz https://github.com/leonardocintra/API-Carros/blob/master/API-Maven/Carros/src/test/java/test/CarroTest.java

Voce consegue debugar ?

FabianoPrazeres commented 8 years ago

Bom dia @leonardocintra-luizalabs, meu código esta semelhante ao seu no método testSalvarDeletarCarro, porém na hora da comparação não esta comparando objetos iguais como o @diogensd me informou, em qual classe poderia estar o erro

diogenesd commented 8 years ago

Fabiano: Na sua imagem o erro descreve: -> esperado Teste[UPDATE] mas foi: -> Teste na linha 63

então executa o metodo savar e confere o que foi salvo no bd, pois quando esá buscando pelo id esta retornando diferente.

pode ser um erro no seu metodo save ou update

FabianoPrazeres commented 8 years ago

Obrigado meu nobres colegas, problema solucionado, Obrigada pela ajuda de todos! Forte Abraço! Fiquem com Deus!!

Vanderlucio commented 5 years ago

Boa noite a todos não estou encontrando a falha ao executar o teste testSalvarDeletarCarro alguém pode me ajudar por favor image

Vanderlucio commented 5 years ago

acontece a atualização e também e salvo o conteúdo mais o método deletar não esta funcionando