| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/11/2006 01:02:16
|
Diogo Cabral
Thread.start()
![[Avatar]](/images/avatar/82077c274c8b1917a195adc43f641529.png)
Membro desde: 22/06/2006 12:05:33
Mensagens: 44
Localização: Maceió - AL
Offline
|
Oi,
Estou testando meus daos e actions utilizando o dbunit e hsqldb, o problema é que estou achando que os testes estão saindo muito "bombados" fazendo com que a simplicidade vá embora. Acho que estou fugindo um pouco do escopo de teste unitário ou talvez seja apenas paranóia de minha parte. Gostaria de opiniões sobre o teste abaixo.
[]'s
SetUp de uma action.
|
diogocabral.com |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/11/2006 01:43:09
|
wariows
JavaGuru
![[Avatar]](/images/avatar/87da3a68e40336b5aaed42e34be59e3b.jpg)
Membro desde: 03/11/2006 02:27:43
Mensagens: 206
Offline
|
bolado
|
"Tudo o que você precisará quando o universo acabar é de uma toalha"
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/11/2006 14:01:42
|
s4nchez
Virtual Machine Man
![[Avatar]](/images/avatar/bef4d169d8bddd17d68303877a3ea945.jpg)
Membro desde: 05/06/2006 11:35:55
Mensagens: 674
Localização: London, UK
Offline
|
Toda esta configuração dos testes pode estar numa classe intermediária que é extendida pelos seus testes. Desta maneira você evita duplicar esta configuração em todo TestCase e vai ajudar na questão da simplicidade
Quanto ao escopo dos testes de unidade, uma vez que o método que você está testando depende do banco de dados, ele já não está sendo testado isolado. No caso este virou um teste de integração.
Para testar o método isolado você teria que usar mocks para simular o comportamento do banco. O teste ficaria isolado, mas o comportamento real do banco não seria testado (você não conseguiria saber se um SQL iria ou não gerar erro, por exemplo).
|
Ivan Sanchez | coding dojo | blog | twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/11/2006 22:02:08
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Todo teste dbUnit por nao eh exatamente unitario (e sim de aceitacao, funcional ou, no minimo, de integracao). Entao, siga o conselho do Ivan e limpe a configuracao e setUp, mas nao esquente muito a cabeca com o que nao for problema
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/11/2006 00:20:27
|
Diogo Cabral
Thread.start()
![[Avatar]](/images/avatar/82077c274c8b1917a195adc43f641529.png)
Membro desde: 22/06/2006 12:05:33
Mensagens: 44
Localização: Maceió - AL
Offline
|
Oi,
Vou seguir a recomendação da classe intermediária para deixar o teste mais simples.
Quanto ao escopo, acho que para o meu caso vai ser mais útil um teste de integração em se tratando dos daos e nas actions utilizarei testes unitários com a utilização de mocks para simular o comportamento do banco.
Restou apenas uma dúvida quando a organização dos testes unitários e de integração.
<paranóia>
Geralmente vocês separam os testes de unitários dos de integração? Ou eles ficam no mesmo source folder?
</paranóia>
[]´s
|
diogocabral.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/11/2006 12:10:16
|
s4nchez
Virtual Machine Man
![[Avatar]](/images/avatar/bef4d169d8bddd17d68303877a3ea945.jpg)
Membro desde: 05/06/2006 11:35:55
Mensagens: 674
Localização: London, UK
Offline
|
Um critério para deixar junto ou separado é desempenho. Uma boa prática é manter os testes rodem sempre o mais rápido possível.
Ou seja, se os testes de integração começarem a levar muito mais tempo que os outros para rodar, daí é o caso em se pensar em pelo menos criar um TestSuite específico para eles.
Até lá não vejo porque se preocupar com essa questão. Afinal, o objetivo de testar já está sendo alcançado
|
Ivan Sanchez | coding dojo | blog | twitter |
|
|
 |
|
|