NO son una documentación de referencia ABSOLUTA
Tenga en cuenta que gran parte de lo siguiente también se aplica a los comentarios, ya que pueden desincronizarse con el código, como las pruebas (aunque es menos exigible).
Entonces, al final, la mejor manera de entender el código es tener un código de trabajo legible .
Si es posible y no se escriben secciones de código de bajo nivel cableadas o condiciones particularmente complicadas, la documentación adicional será crucial.
- Las pruebas pueden estar incompletas:
- La API cambió y no se probó,
- La persona que escribió el código escribió las pruebas para los métodos más fáciles de probar primero en lugar de los métodos más importantes para probar, y luego no tuvo tiempo de terminar.
- Las pruebas pueden ser obsoletas.
- Las pruebas pueden cortocircuitarse de manera no obvia y no ejecutarse realmente.
PERO TODAVÍA son un complemento de documentación ÚTIL
Sin embargo, cuando tengo dudas sobre lo que hace una clase en particular, especialmente si es bastante larga, oscura y falta de comentarios (ya sabes el tipo ...), trato de encontrar rápidamente su (s) clase (s) de prueba y compruebo:
- lo que realmente intentan verificar (da una pista sobre los datos más importantes, excepto si el desarrollador cometió el error mencionado anteriormente de solo implementar las pruebas "fáciles"),
- y si hay casos de esquina.
Además, si se escriben usando un estilo BDD , dan una definición bastante buena del contrato de la clase . Abra su IDE (o use grep) para ver solo nombres de métodos y tada: tiene una lista de comportamientos.
Las regresiones y los errores también necesitan pruebas
Además, es una buena práctica escribir pruebas de regresión y de informes de errores: arreglas algo, escribes una prueba para reproducir el caso. Al mirar hacia atrás, es una buena manera de encontrar el informe de error relevante y todos los detalles sobre un problema anterior, por ejemplo.
Yo diría que son un buen complemento para la documentación real, y al menos un recurso valioso a este respecto. Es una buena herramienta, si se usa correctamente. Si comienzas a probar temprano en tu proyecto y lo conviertes en un hábito, PODRÍA ser una muy buena documentación de referencia. En un proyecto existente con malos hábitos de codificación que ya huelen la base del código, trátelos con cuidado.