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
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.