[quote=eduveks]Que um método pode levar valores negativos e positivos e não da erro, que pede receber valores nulos e não arrebenta?!?! Isto é garantia do que?!?!?!
Muito simples, no método xpto ou manda os valores corretos ou já era, se ele estiver de acordo com a especificação, o que tem isto de mau? é bug?
Imagina vc tem um método para fazer adição monetária, onde é proibido números negativos, e recebe um valor negativo e funciona, os testes unitários não vao detectar este bug, e o novo programador q ta fazendo merda, não vai ser testes unitários que vai te ajudar a descobrir este bug.
[/quote]
public void testAdicionarValoresNegativos(){
Somador s = new Somador();
try{
somador.somar(3, -1);
fail("Nao deu erro ao somar valor negativo");
}catch(IllegalArgumentException e){
//ok, pegou o erro
}
}
Isso testa valores negativos.
E como você vai fazer os testes funcionais, na mão? Quanto tempo demora para você fazer um teste de regressão? Testes unitários não eliminam testes funcionais, eles agem em um nível mais abaixo e quando você acha um bug num teste unitário é mais barato que num funcional.
Nossa, então você vai colocar algo em produção sem sequer testes funcionais?
Sem dados eu só posso acreditar que esta seja a sua opinião. A questão é simples: regressão. Qualquer um que já trabalhou num software que teve releases sabe que existe um grande problema em testar o software todo novamente a cada mudança.
Não ponha palavras na minha boca. Eu nunca andei concientemente num carro sem testes, mesmo porque a legislação não deixa carros deixarem a produção sem testes. Ou componentes eletrônicos. Ou banquinhos de padaria. Ou qualquer coisa que se leve minimamente a sério.
[quote=eduveks]
Vc não acha que a melhor forma de testar isto, é no formulário colocar um número negativo e clicar em gravar, e ai se aceitar, aproveita para reportar um bug, e diz para corrigir no método e também colocar uma validação no formulário, não é muito mais simples? [/quote]
Das duas uma: ou seu software só tem essa tela ou você tem todo o tempo e recursos do mundo. Mesmo assim, é muito fácil um tester esquecer um passo ou fazer algo errado. Como disse antes um teste não substitui o outro mas teste click-click-click é simplesmente perda de tempo e dinheiro quando pode ser evitado. No seu exemplo acima no mínimo deveria ser utilizado algo como Selenium.
E isso ignorando condições que são facilmente simuláveis em testes unitários e não emt estes funcionais. Que acotnece se aquela classe recebe 1000 pediddos numa ordem específica? Como você simula isso em testes funcionais?