Existen variaciones basadas en diferentes estilos de codificación e idiomas. Sin embargo, independientemente del idioma que use, la mayor variación es usted.
Robert Martin dijo una vez:
"A medida que las pruebas se vuelven más específicas, el código se vuelve más genérico".
Eso me hizo pensar. Pruebas más específicas significan más código de prueba. Más código de producción genérico significa menos código, por lo que las proporciones de prueba / código deberían aumentar a medida que el código evoluciona.
Pero espera, eso tampoco es bueno. En algunos casos particulares, por ejemplo, cuando define un cierto algoritmo, puede tener solo 6-10 líneas de código que contienen un par de "si", un tiempo y quizás 2-3 recursiones. Puedo decirte que ese código tendrá probablemente más de 100 líneas de código de prueba.
En un proyecto real, algo más grande que unos pocos algoritmos, la relación prueba / código debe estar entre 1: 1 y 2: 1. Si supera el 2: 1, es un olor que tiene pruebas que deben refactorizarse o eliminarse (o tal vez un código que es difícil de probar). Siempre debe invertir la misma cantidad de cuidado y refactorización en sus pruebas que en su código de producción.
De todos modos, la mejor respuesta a su pregunta tal vez sea "Complejidad ciclomática" . Cuanto mayor sea la complejidad ciclomática de su método, más exponencialmente tendrá que escribir para que cubra todos los casos.