Eu tenho que escrever testes de unidade e testes de integração para um projeto.
- Todos os testes devem ser colocados em uma única pasta de testes ?
- Ou os testes de unidade e de integração devem estar em uma pasta de testes separada ?
- Ou devo colocá-los em projetos separados ?
Se eu os mantiver juntos, existem vantagens ou desvantagens nessa abordagem?
architecture
unit-testing
integration-tests
Ahmed Ragheb
fonte
fonte
Respostas:
Em geral: sim, você deve colocar testes de integração e testes de unidade em pastas diferentes. Frequentemente, os programadores não traçam uma linha clara entre esses dois tipos de testes e apenas escrevem qualquer tipo de teste que seja útil. Mas os testes de integração tendem a ser mais lentos, porque geralmente envolvem:
Por outro lado, um teste de unidade zombaria de quaisquer operações caras, portanto, os testes de unidade tendem a ser executados rapidamente (na verdade, a parte mais lenta da execução do teste é geralmente a própria estrutura de teste).
Quando um programador está trabalhando no sistema, ele está em um ciclo de edição e teste. Quanto mais rápido eles obtêm feedback de teste e quanto menor o ciclo, mais produtivos eles podem ser. Portanto, queremos executar apenas testes importantes que são concluídos rapidamente. O conjunto completo de testes seria executado apenas como parte de um processo de controle de qualidade, por exemplo, em um servidor de IC.
Isso significa que grandes suítes de teste devem ser categorizadas. Podemos selecionar apenas testes de unidade para um componente específico? Podemos excluir testes lentos? Uma maneira simples de fazer isso é manter diferentes conjuntos de testes em diretórios diferentes. Se você tiver apenas muito poucos testes, um único diretório também estará OK, desde que um programador possa selecionar facilmente um subconjunto de testes.
Tudo o que permite que um programador obtenha feedback rapidamente é bom. O conjunto de testes mais abrangente não importa se não for executado regularmente.
Leitura adicional:
fonte