Os testes de integração usam zombarias?


24

Atualmente, estou em uma aula de teste de software, onde, em nosso projeto semestral, precisamos executar vários tipos de teste, como testes de unidade e testes de integração. Para testes de integração, o professor disse que usa zombarias e bibliotecas de zombaria (como EasyMock e Mockito) para nossos testes de integração. Estou ficando bastante confuso. O teste de integração está testando classes, módulos, serviços etc. externos Por que zombarias e stubs seriam adequados para uso em testes de integração se você estiver testando várias classes e serviços?


8
Os testes de "integração" e "unidade" não são termos universalmente acordados. É melhor perguntar ao seu professor exatamente como eles definiram esses termos.
precisa

1
Apenas um comentário. Teste de integração não significa testar as dependências., Trata-se de testar a integração correta do código com as dependências (as chamadas, a resposta e o tratamento de erros, etc.).
LAIV

Respostas:


25

Se você tem uma parte da funcionalidade que toca em vários componentes externos, poderá zombar de todos, exceto um, para isolar e testar um componente específico. Por exemplo, suponha que você tenha uma função que chame um serviço da Web e faça algo com um banco de dados com base nos resultados. Você pode escrever três testes de integração:

  1. um teste que zomba da chamada do serviço da web, mas envolve conectividade de banco de dados real.
  2. um teste que faz uma chamada real de serviço da web, mas usa conectividade de banco de dados simulada.
  3. um teste que faz uma chamada real de serviço da web e envolve uma conexão real com o banco de dados.

Se você executar todos os três testes e 1 e 3 falharem, há uma boa chance de que possa haver um erro no seu código que funcione com o banco de dados, pois o único teste que passou foi o da conectividade simulada ao banco de dados.

Em geral, os testes de integração não usam zombarias, mas eu fiz algo assim ocasionalmente.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.