Es gibt Variationen, die auf unterschiedlichen Codierungsstilen und Sprachen basieren. Unabhängig von der von Ihnen verwendeten Sprache sind Sie jedoch die größte Variation.
Robert Martin hat einmal gesagt:
"Je spezifischer die Tests werden, desto allgemeiner wird der Code."
Das hat mich zum Nachdenken gebracht. Spezifischere Tests bedeuten mehr Testcode. Mehr generischer Produktionscode bedeutet weniger Code, daher sollten die Test / Code-Verhältnisse steigen, wenn sich der Code weiterentwickelt.
Aber warte, das ist auch nicht gut. In bestimmten Fällen, z. B. wenn Sie einen bestimmten Algorithmus definieren, stehen möglicherweise nur 6-10 Codezeilen mit ein paar "if" -Zeilen, einer Weile und möglicherweise 2-3 Rekursionen zur Verfügung. Ich kann Ihnen sagen, dass der Code wahrscheinlich mehr als 100 Zeilen Testcode enthalten wird.
In einem realen Projekt, das etwas größer als nur ein paar Algorithmen ist, sollte das Test / Code-Verhältnis irgendwo zwischen 1: 1 und 2: 1 liegen. Wenn es über 2: 1 geht, ist es ein Geruch, dass Sie Tests haben, die überarbeitet oder gelöscht werden sollten (oder vielleicht Code, der schwer zu testen ist). Sie sollten in Ihre Tests immer den gleichen Aufwand an Sorgfalt und Umgestaltung investieren wie in Ihrem Produktionscode.
Die beste Antwort auf Ihre Frage ist vielleicht "Cyclomatic Complexity" . Je höher die zyklomatische Komplexität Ihrer Methode ist, desto exponentiell mehr Tests müssen Sie schreiben, um alle Fälle abzudecken.