Eae galera estou fazendo um trabalho sobre JUnit pra faculdade… nunca trabalhei com a ferramenta mas escuto falar bem dela e que permite a criação de testes automatizados utilizando Java… e quando vc começa a procurar na internet as vantagens e desvantagens da ferramenta é meio dificil encontrar as desvantagens então só estou vendo mais vantagens e claro se aplicar a ferramenta de forma certa nos testes ela vai ser pefeita mas existe algo que ela não seja boa, perfeita, fabulosa e maravilhosa?
até agora só ví isso de desvantagens sobre o Junit
#O programador pode não adotar a idéia do uso da ferramenta para a melhora da qualidade do software, seja por causa da falta de costume ou da falta de interesse do mesmo. #Se há pressão para a pronta entrega do sistema o programador ou testador podem ?burlar? os Testes# #Para testar persistência (Hibernate/JPA), o JUnit precisa de um mock, ou seja uma simulação de como o sistema deve se comportar em tempo real, e para isso é preciso alterar uma abstração para utilizar um banco de memória (HSQLDB).
Cara, não sei se vou falar besteira, mas na faculdade o professor disse que todos os métodos testados com o JUnit devem estar visíveis para a classe de teste, ou seja, não é possível testar métodos privados.
Para mim, isso é uma desvantagem pois nem sempre queremos todos nossos métodos públicos. Mas jogo isso aqui para os caras mais experientes! rs
P
Polverini
Uma desvantagem bem grande dele é que dependendo da alteração que vc faz nos metodos vai ter que alterar os testes.
V
ViniGodoy
Muitas vezes você deve escrever código mais complexo só para que ele seja testável (por exemplo, ter que recorrer a inversão de controle muito mais do que realmente seria necessário);
Se você não usar nenhuma API especial, o que o colega falou é verdade, você terá que expor alguns métodos para que seu sistema seja testável;
Alguns mocks podem ser muito difíceis de escrever, especialmente para testar sistemas de tempo real ou situações multi-thread;
Há poucas soluções realmente boas para testar a interface gráfica;
Alguns tipos de sistemas tem uma quantidade de estados tão grande, que testa-los automaticamente são um grande desafio. Um exemplo de sistemas assim são simuladores e games.
Do contrário do que os sites dizem, TDD não muda sua forma de pensar, nem te faz um ser humano melhor, nem é a panacéia para todos os problemas da humanidade. Isso não é uma desvantagem: ele realmente ajuda. Mas também não é uma vantagem tão significativa quanto os autores levam a crer.
De qualquer forma, ainda é vantajoso ter uma boa cobertura de testes, especialmente em métodos mais críticos do seu sistema. Também é legal ter testes em métodos que tenham muitas regrinhas, como trechos de cálculos financeiros ou contábeis.
R
Rauel
valeu galera!!!
J
Java_Kid
[color=blue]e, na opiniao de vcs, existem ferramentas de teste melhores do que o JUnit atualmente? sou novo no Java. por isso estou perguntando.
sds,[/color]
R
Rauel
kra depende do seu nível de aprendizado na framework e da necessidade em seu projeto