Pomyśl o tym w kategoriach zachowania, a nie w kategoriach dostępnych metod. Wywołana metoda method
ma określone zachowanie, jeśli b
jest prawdziwe. Zachowuje się inaczej, jeśli b
jest fałszywe. Oznacza to, że powinieneś napisać dwa różne testy method
; po jednym w każdym przypadku. Więc zamiast trzech testów zorientowanych na metodę (jeden za method
, jeden za method1
, jeden za method2
, masz dwa testy zorientowane na zachowanie).
Związane z tym (zasugerowałem to niedawno w innym wątku SO, iw rezultacie zostałem nazwany czteroliterowym słowem, więc możesz to wziąć z przymrużeniem oka); Uważam, że pomocne jest wybranie nazw testów, które odzwierciedlają zachowanie, które testuję, zamiast nazwy metody. Więc nie nazywaj swoje testy testMethod()
, testMethod1()
, testMethod2()
i tak dalej. Lubię takie imionacalculatedPriceIsBasePricePlusTax()
lub, taxIsExcludedWhenExcludeIsTrue()
które wskazują, jakie zachowanie testuję; następnie w ramach każdej metody testowej testuj tylko wskazane zachowanie. Większość takich zachowań obejmuje tylko jedno wywołanie metody publicznej, ale może obejmować wiele wywołań metod prywatnych.
Mam nadzieję że to pomoże.