| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/04/2008 11:06:29
|
antoniopopete
Virtual Machine Man
Membro desde: 27/12/2006 02:37:31
Mensagens: 712
Localização: Salvador - BA
Offline
|
Como vocês testam sua camada de persistência?
Em java.
Muita gente usa JUnit?
Alguém tem algum tutorial sobre isso?
Aplicações web, são complexas de testar, não?Por exemplo o DS, está no JBoss e em tempo de execução ele é localizado, na camada de testes,temos que abstrair isso em um método ou existe uma solução mais rápida?
|
Antonio Lazaro
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/04/2008 11:42:28
|
jgbt
GUJ Master
![[Avatar]](/images/avatar/25df35de87aa441b88f22a6c2a830a17.png)
Membro desde: 04/06/2003 15:01:48
Mensagens: 1286
Localização: Porto Alegre/RS
Offline
|
Use DBUnit e seja feliz...
[]´s
|
João Bier
Desenvolvedor Java |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/04/2008 12:29:18
|
Javabuntu
GUJ Master
![[Avatar]](/images/avatar/00053f5e11d1fe4e49a221165b39abc9.jpg)
Membro desde: 08/02/2007 17:15:32
Mensagens: 1315
Localização: Brasília
Offline
|
cara o JUnit sempre atendeu nos testes que precisei... mas o DB citado é bem mais específico ao propósito desejado..
This message was edited 1 time. Last update was at 17/04/2008 12:30:04
|
SCJP 6
SCJD
SCWCD 5
Itil V2 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/04/2008 12:34:36
|
diogosantana
Thread.start()
Membro desde: 03/04/2008 13:42:55
Mensagens: 25
Offline
|
Você também pode usar técnicas de inversão de controle (IoC).
A framework Spring é muito utilizada para isso.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/04/2008 12:46:39
|
jgbt
GUJ Master
![[Avatar]](/images/avatar/25df35de87aa441b88f22a6c2a830a17.png)
Membro desde: 04/06/2003 15:01:48
Mensagens: 1286
Localização: Porto Alegre/RS
Offline
|
Javabuntu wrote:cara o JUnit sempre atendeu nos testes que precisei... mas o DB citado é bem mais específico ao propósito desejado..
Na verdade vc vai basicamente usar JUnit+DBUnit. DBUnit é uma extensão do JUnit.
[]´s
|
João Bier
Desenvolvedor Java |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/04/2008 12:47:07
|
lavh
GUJ Master
Membro desde: 30/07/2006 16:09:55
Mensagens: 1311
Offline
|
Minha experiência com testes unitários da camada de persistência sempre foram péssimas!
Normalmente pra inserir em uma tabela, você precisa que tenham dados em mais 2 ou 3 no mínimo.
É aí que começa o drama. No projeto que eu to, tinha tabelas que dependiam de 7 ou 8 outras tabelas,
dai era um inferno fazer os inserts em todas pra testar um mero select.
O DBUnit não ajuda muito e é muito bugado. Eu cheguei a trabalhar um tempo nele pra ajudar corrigir bugs
mais parei.
Solução adotada pela minha equipe: abolição dos testes de DAO.
A gente faz pair-review do código do DAO só pra ver se não tem nada de muito erado, e depois testes mesmos
do DAO só testes funcionais efetuados pela equipe de testes.
Estamos bem felizes com essa solução, e diferente do que alguns temiam, não estamos tendo bugs de DAO em produção.
Muito pelo contrário.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/04/2008 15:39:35
|
jgbt
GUJ Master
![[Avatar]](/images/avatar/25df35de87aa441b88f22a6c2a830a17.png)
Membro desde: 04/06/2003 15:01:48
Mensagens: 1286
Localização: Porto Alegre/RS
Offline
|
Cara,
sempre usei DBUnit e nunca tive problemas. Ja usei ele em projetos com EJB2 CMP e era bem tranquilo. O fato de ter que inserir em varias tabelas não acho problema. Os xmls podem ser gerados a partir de uma base pronta.
Agora se vc possui consultas muito complexas, concordo que pode ficar complicado. Mas tmb acho que seu modelo pode estar focado no banco, e não nos objetos. as vezes acontece(banco legado), entao talvez sua solução foi acertada.
[]´s
|
João Bier
Desenvolvedor Java |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/04/2008 23:47:11
|
Alessandro Lazarotti
Virtual Machine Man
![[Avatar]](/images/avatar/2aaaddf27344ee54058548dc081c6541.jpg)
Membro desde: 21/01/2004 14:12:54
Mensagens: 719
Offline
|
Tbm uso DBunit e não tenho grandes problemas.
Porém, a única coisa que me chateia é ter que necessariamente existir primary-keys em todas as tabelas. O JPA, para relacionamentos com join-tables, por default ele cria a tabela de ligação sem atribuir a ela uma PK... e isso dá erro com o DBUnit.
Uma solução é fazer isso:
http://dbunit.wikidot.com/noprimarykeytable
... mas dá muito trampo criar "pseudo-keys" em filters para cada relacionamento e nos vários data-sets.
Como vc se vira com isso JGBT ?
|
... Lezinho
------------------------
twitter: @lazarotti
http://alessandrolazarotti.wordpress.com/
http://jbossbrasil.org/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/05/2008 09:47:35
|
renatoes
JavaBaby
![[Avatar]](/images/avatar/0f1660f4c5defc5b8d938ecd39837d11.jpg)
Membro desde: 04/09/2006 20:00:45
Mensagens: 84
Localização: Londrina-PR
Offline
|
Bom dia,
Tenho uma dúvida mais conceitual: é válido realizar testes unitários da camada de persistência através das classes DAO de um sistema, ou devo separar os testes entre somente na camada de persistência (utilizando por exemplo o dbUnit) e somente nas classes DAO (utilizando possivelmente Mock Object)?
Sou novato no pensamento TDD, porém creio que será de grande valia para minha experiência em programação.
Agradeço desde já
|
self.life = rand()
Our will will guide us to a place where we belong. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/05/2008 13:57:40
|
renatoes
JavaBaby
![[Avatar]](/images/avatar/0f1660f4c5defc5b8d938ecd39837d11.jpg)
Membro desde: 04/09/2006 20:00:45
Mensagens: 84
Localização: Londrina-PR
Offline
|
Boa tarde,
Talvez nao fui mto claro com a minha duvida anterior. Por algum motivo nao muito claro fiz uma baita confusao com o conceito de camada de persistencia. De qualquer maneira, vou explicar o que ocorre por aqui, uma vez que pode ser a realidade de outro programador.
Nosso sistema Web nao possuia suite de testes e esta a meu cargo desenvolve-los (estou abordando a camada de persistencia atualmente). O sistema utiliza um arquivo de properties com as queries utilizadas, e minha duvida no post anterior eh justamente em relacao ao dominio dos testes (se devo e como separar os testes unitarios nas classes DAO com os testes unitarios do banco). Como nem todos os metodos das classes DAO mapeiam uma uma query, possivelmente terei que adicionar outras funcionalidades para realizar os testes unitarios do banco.
Entao minha duvida eh: qual a melhor solucao para esse caso?
Agradeco a atencao
|
self.life = rand()
Our will will guide us to a place where we belong. |
|
|
 |
|
|