F.I.R.S.T.
Um teste para ser considerado limpo, precisa seguir o F.I.R.S.T:
- Fast: os testes devem ser rápidos. Quando um teste é lento, o desenvolvedor não quer executado frequentemente. Se o desenvolvedor não roda o teste frequentemente, o mesmo não encontrará os problemas e, assim, irá consertar o problema.
- Independent: os teste deve ser independente de outro teste. Um teste não deve configurar variáveis que seram executadas em outro teste. O desenvolvedor deve executar os teste em qualquer ordem e em qualquer momento. Caso os teste sejam dependente, um erro no primeiro teste pode causar erros nos demais testes.
- Repeatable: ostestes devem ser repetidos em qualquer ambiente. O desenvolvedor deve ser capaz de rodar o teste no ambiente de produção, homolagação e no computador pessoal.
- Self-Validating: os testes devem ter como saída um boolean. Em outras palavras, ou o teste passou ou ele falhou. Não deve ter mensagem.
- Timely: os teste devem ser escritos em tempo hábil. Teste unitários devem ser escritos antes do inicio da codificação. Caso o desenvolvedor produza teste após a codificação, o mesmo pode achar que o código é pesado para o teste e não executar o teste. Além disso, o desenvolvedor pode produzir um código que não “testável”.