O documento discute a importância de se escrever testes de software, especialmente testes unitários, e fornece diretrizes sobre como estruturar diferentes tipos de testes. É recomendado testar unidades menores de código através de testes unitários para fornecer feedback rápido, e também realizar testes de integração e aceitação, apesar de serem mais demorados. Um sistema de integração contínua ajuda a automatizar e agilizar o processo de teste.
14. Certa vez um sábio disse:
A test is not a unit test if:
* it talks to the database
* it communicates across the network
* it touches the file system
* it can’t run at the same time as any of your other unit tests
* you have to do special things to your environment (such as editing config files) to run it
Tests that do these things aren’t bad. Often they are worth writing, and they can be written in a unit
test harness. However, it is important to keep them separate from true unit tests so that we can run
the unit tests quickly whenever we make changes.
--
Ou um chapa disse em português:
Um teste não é um teste unitário se:
- Comunica com o banco de dados
- Comunica pela rede
- “Toca” no sistema de arquivos
- Se não pode ser rodado ao mesmo tempo de outros testes unitários
- Se você tem que configurar determinadas coisas como arquivos de configuração
29. Para que?
Meus dados estão vindo de forma correta?
Meus dados estão sendo gravados de forma correta?
Minha camada de modelo está se comunicando corretamente com o ORM?