Ultimamente veio me dedicando bastante a tarefa de fazer teste unitário juntamente com o desenvolvimento. Porém surgiu uma dúvida com relação a diferença de teste unitário e teste de integração.
1 - Ambos, testes unitários e te integração, são testados com o JUnit?
2 - O teste unitário testa apenas 1 método, se ele faz chamada a outras classes, essas classes devem ser simuladas através de um Mock. No caso do Teste de Integraçao, voce deixa os Mocks de lado e de fato testa todas as classes envolvidas. Estou certo? Se sim, eu devo primeiro criar os Testes Unitários para depois implementar os testes de integração?
3 - Teste Unitário não interage com recursos externos (como banco de dados), no caso de teste de integração eu devo interagir? ou apenas nos testes funcionais?
4 - no TDD, o teste unitário é feito antes de implementar a classe. E sobre o teste de integração, deve ser feito depois da classe ser implementada e antes do teste funcional?
Alguém tem alguma dica a mais sobre os testes de integração?
1 - Ambos, testes unitários e te integração, são testados com o JUnit?
Sim, o teste de integração nada mais eh do q vc está integrando partes do seu sistema ao local aonde a versao “final” da aplicacao está rodando. Vc faz os seus testes unitarios para testar unidades do seu sw…dps vc os integra com o restante do sw…após a integracao dos novos arquivos, ai vc executa o teste de integracao, q nada mais eh do q rodar novamente todo o seu conjunto de testes para ver se está tudo em ordem.
2 - O teste unitário testa apenas 1 método, se ele faz chamada a outras classes, essas classes devem ser simuladas através de um Mock. No caso do Teste de Integraçao, voce deixa os Mocks de lado e de fato testa todas as classes envolvidas. Estou certo? Se sim, eu devo primeiro criar os Testes Unitários para depois implementar os testes de integração?
Teste de integração eh simplesmente executar os seus testes apos integrar o seu sistema.
3 - Teste Unitário não interage com recursos externos (como banco de dados), no caso de teste de integração eu devo interagir? ou apenas nos testes funcionais?
vc pode sim criar testes unitarios para testar recursos externos, desde q vc consiga “simular” um retorno boolean
4 - no TDD, o teste unitário é feito antes de implementar a classe. E sobre o teste de integração, deve ser feito depois da classe ser implementada e antes do teste funcional?
Para mim são as mesmas coisas, a menos q alguem me dê uma resposta mais convincente…
vc separou, mas no fundo eh a msm coisa…em ambos os casos vc deve executar todos os seus testes…vai me dizer q no seu segundo caso vc nao executa todos os seus casos de teste?? se nao, como vc testa?
Teste de Integração significa integrar todos os artefatos do sw q vc tem em mãos juntamente com a versão que está em produção…ou seja, vc vai lançar uma nova versão…e para isso vc executa todos os casos de testes…
Você está descrevendo Integração como em Integração Contínua.
Teste de Integração é exercitar as dependências do seu sistema.
Por exemplo, você está escrevendo um sistema que acessa um banco de dados e testa todas as suas classes usando mocks,
Você pode integrar todo o código, rodar todos os testes e ainda assim não terá testado a integração com o banco de dados. Ou seja, neste caso não existem testes de integração.