Em desenv. guiado por teste deve-se testar o equals?

12 respostas
Thiago_Senna

Olá GUJ’s!

A minha dúvida é bastante simples. Estou brincado com TDD (Test Driven Development ) em um projetinho, e nessa brincadeira bateu a seguinte dúvida:

Eu também devo criar testes para o método equals?

Testar o método equals é uma rotina bastante chata e repetitiva. Qual estratégia vcs utilizam para lidar com esta situação?

Desde já agradeço!
Thiago

12 Respostas

pcalcado

Se seu objeto sobrescreve equals , ele deve ser usado em algum lugar no seu sistema, então sim, deve ser testado.

Thiago_Senna

Valeu shoes…

Estou usando o commons-lang para implementar equals, hashcode e toString… quebra um bom galho!

Testar o equals é chato pacas, mas em testes de outras funcionalidades do sistema, sabendo que o equals foi devidamente testado acaba valendo a pena!

Eu crei um testSaveAndLoad…

Daí eu salvava o objeto, buscava ele de volta, mas daí pra saber se tinha retornado objeto correto ttinha que ficar testando atributo por atributo… daí não dá né!!!

Obrigado!
Thiago

cv1

“testSaveAndLoad” eh um nome ruim - tente algo do tipo “test Projects Can Be Saved And Loaded Without Losing Any Attribute Data”, ou testProjectsCanBeSavedAndLoadedWithoutLosingAnyAttributeData(), pros intimos. Voce nunca vai ter que chamar esse metodo mesmo, pq nao dar um nome extremamente explicativo pra ele? :wink:

Thiago_Senna

Boa Carlos! Essa sua colocação me convenceu!! :smiley: :smiley:

Vou começar a revisar todos os testes e colocar um nome mais exlicativo para todos eles…

De boa, TDD é muito louco!!! :smiley: … Estou fazendo um esforço para adiquirir esta prática, e como está no livros, o resultado é realmente surpreendente!!! :wink:

Abraços!
Thiago

Rafael_Nunes

Qual livro você está lendo/utilizando sobre TDD?

Tava pensando em comprar o JUnit in Action.

Thiago_Senna

Olá Rafael!

Bom… primeiro eu comecei a me interar sobre Extreme Programming! É interessante vc ter idéia de como funciona uma metodologia de desenvolvimento ágil. Existem vários livro sobre este assunto, mas eu li o Extreme Programming do Vinicius Manhães Teles:

http://www.temporeal.com.br/produtos.php?id=168198

Atualmente estou lendo o livro Java Open Source Programming: with XDoclet, JUnit, WebWork, Hibernate:
http://www.wiley.com/WileyCDA/WileyTitle/productCd-[telefone removido].html

Este livro aborda a criação de uma aplicação PetStore usando apenas tecnologias open source. Mas o que é interessante no livro não são apenas as tecnologias abordadas, mas sim o fato do desenvolvimento deste projeto ser guiado por testes. Ou seja, seja qual for o código exemplo do livro, eles primeiro criam os testes, e depois codificam! Muito bom em minha opinião… O Refactoring aqui também come solto!

Agora, vou passar pra vc os livros que estão na minha lista de não lidos, que que vou ler em breve, se Deus quiser!!!

Addison Wesley - Test-Driven Development By Example
Pragmatic Unit Testing
Addison Wesley - Refactoring Improving the desing of existing code

Bom… são esses!
Abraços!
Thiago

Luca

Olá

Acho este livro muito bom!

[]s
Luca

Rafael_Nunes

Luca:
Olá

Acho este livro muito bom!

[]s
Luca

Na verdade foi exatamente pela sua sugestão no tópico de livros que decidi comprá-lo para aprender um pouco mais sobre testes… :wink:

Thiago_Senna

Bom… alguns materias q encontrei na net…

http://www.argonavis.com.br/palestras/xpbrasil2002/JUnit_XP.pdf
http://www.portaljava.com/home/modules.php?name=Content&pa=showpage&pid=82&page=1

Abraços!

Daniel_Quirino_Olive

Só complementando o shoes, use as 5 regrinhas (reflexão, simetria, transitividade, consistência e xyz != null, qdo xyz for não nulo) que toda implementação de um método equals deve obedecer como parâmetros para teste.

caiofilipini

Outra sugestão nesse sentido é usar o JUnit-addons para fazer testes de equals() e hashCode():

http://junit-addons.sourceforge.net/junitx/extensions/EqualsHashCodeTestCase.html
http://junit-addons.sourceforge.net/
http://sourceforge.net/projects/junit-addons

[]'s

Thiago_Senna

Essa foi boa em Caio!

Eu num conhecia esse add-ons!

Nossa, só de pensar em ficar criando os testes de equals me dava uma tristeza. Vou em breve testar isso ai em um projetinho!

Abraços!
Thiago

Criado 20 de junho de 2005
Ultima resposta 22 de jun. de 2005
Respostas 12
Participantes 7