Istnieją odmiany oparte na różnych stylach i językach kodowania. Jednak niezależnie od używanego języka największą odmianą jest Ty.
Robert Martin powiedział kiedyś:
„Gdy testy stają się bardziej szczegółowe, kod staje się bardziej ogólny.”
To sprawiło, że pomyślałem. Bardziej szczegółowe testy oznaczają więcej kodów testowych. Bardziej ogólny kod produkcyjny oznacza mniej kodu, więc stosunek test / kod powinien rosnąć w miarę ewolucji kodu.
Ale czekaj, to też nie jest dobre. W niektórych szczególnych przypadkach, na przykład podczas definiowania określonego algorytmu, możesz mieć tylko 6-10 wierszy kodu zawierających kilka „jeśli”, chwilę i może 2-3 rekurencje. Mogę powiedzieć, że ten kod będzie prawdopodobnie zawierał więcej 100 linii kodu testowego.
W prawdziwym projekcie, czymś większym niż kilka algorytmów, stosunek test / kod powinien wynosić od 1: 1 do 2: 1. Jeśli wzrośnie powyżej 2: 1, to zapach, że masz testy, które powinny być refaktoryzowane lub usunięte (lub może kod, który jest trudny do przetestowania). Zawsze powinieneś inwestować tyle samo uwagi i refaktoryzacji w swoje testy, co w kod produkcyjny.
W każdym razie najlepszą odpowiedzią na twoje pytanie może być „cykliczność złożoności” . Im wyższa cykliczność złożoności Twojej metody, tym wykładniczo więcej testu musisz napisać, aby objąć wszystkie przypadki.