Eles NÃO são uma Documentação de Referência ABSOLUTA
Observe que muitas das opções a seguir também se aplicam aos comentários, pois eles podem ficar fora de sincronia com o código, como testes (embora seja menos aplicável).
Portanto, no final, a melhor maneira de entender o código é ter um código de trabalho legível .
Se possível e não escrever seções de código de baixo nível conectadas por cabo ou condições particularmente complicadas, uma documentação adicional será crucial.
- Os testes podem estar incompletos:
- A API foi alterada e não foi testada,
- A pessoa que escreveu o código escreveu os testes para os métodos mais fáceis de testar primeiro, em vez dos métodos mais importantes para testar, e depois não teve tempo para concluir.
- Os testes podem ser obsoletos.
- Os testes podem sofrer um curto-circuito de maneiras não óbvias e não serem realmente executados.
Mas eles ainda são um complemento útil da documentação
No entanto, quando tenho dúvidas sobre o que uma determinada classe faz, especialmente se for bastante demorada, obscura e sem comentários (você sabe o tipo ...), tento rapidamente encontrar suas classes de teste e verificar:
- o que eles realmente tentam verificar (dá uma dica sobre os petiscos mais importantes, exceto se o desenvolvedor cometeu o erro mencionado acima ao implementar apenas os testes "fáceis"),
- e se houver esquinas.
Além disso, se escritas usando um estilo BDD , elas fornecem uma definição bastante boa do contrato da classe . Abra seu IDE (ou use grep) para ver apenas nomes de métodos e tada: você tem uma lista de comportamentos.
Regressões e bugs também precisam de testes
Além disso, é uma boa prática escrever testes para regressão e relatórios de erros: você corrige algo, escreve um teste para reproduzir o caso. Ao olhar para eles, é uma boa maneira de encontrar o relatório de erros relevante e todos os detalhes sobre um problema antigo, por exemplo.
Eu diria que eles são um bom complemento para a documentação real e, pelo menos, um recurso valioso a esse respeito. É uma boa ferramenta, se usada corretamente. Se você começar a testar no início do projeto e criar um hábito, poderá ser uma documentação de referência muito boa. Em um projeto existente com maus hábitos de codificação que já cheiram mal a base de código, manuseie-os com cuidado.