Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

TDD - Teste de Integração e Teste Unitário

Pessoal, tenho uma dúvida sobre teste de integração e teste unitário. O conceito até que é "simples", mas a prática achei um pouco complicado. Por exemplo: Vou adicionar uma nova funcionalidade no sistema e vou começar a executar o primeiro teste, porém, a primeira classe que irei testar será a Controller, que por usa vez, executa chamadas para a Model ou para outra camada que possui a regra de negócio do sistema, e que por sua vez, pode chamar também outra Model ou outro método de outra classe. Neste caso, o teste da controller vai ser considerado como Teste de Integração? Se a resposta for "Sim, é teste de integração", onde entra o teste unitário?

2 respostas
solução!

Oi Pedro! Tudo bem?

Excelente pergunta!

Teste unitário deve testar um código em sua unidade, ou seja, testar o controller você só testará o controller.

Deve estar se perguntando: Como faço isso se ele depende dos serviços, persistência e etc?

A resposta é simples. Existe frameworks como mockito que permite definir o que esperamos de cada um das dependências da classe. Você acaba não chamando a classe em si, mas só simulando seu funcionamento.

https://site.mockito.org

Para testes de integração, já podemos simular a interação entre componentes e sistemas, para uma determinada função mais complexa que uma simples classe.

Trocando em mundos:

Unitário: Testa métodos de uma classe. Exemplo => Classe ClienteDAO.salvarCliente

Integrado: Testa uma funcionalidade completa. => Exemplo => Funcionalidade de Criação de cliente com todas as suas chamadas até salvar o cliente no banco.

Espero ter ajudado,

Abraço e sucesso,

Rodrigo

Olá Rodrigo, tudo ótimo e vc? Muito obrigado pela resposta, acredito que consegui sanar minhas dúvidas no que diz respeito à pratica de teste de integração e teste unitário.