Подумайте про це з точки зору поведінки, а не з точки зору, які існують методи. Викликаний метод method
має особливу поведінку, якщо b
це правда. Він має іншу поведінку, якщо b
неправдивий. Це означає, що ви повинні написати два різні тести для method
; по одному для кожного випадку. Тож замість того, щоб мати три методи, орієнтовані на метод (один для method
, один для method1
, один для method2
, у вас є два тести, орієнтовані на поведінку.
Пов’язане з цим (я нещодавно запропонував це в іншій темі SO, і в результаті отримав назву чотири літерного слова, тому сміливо сприймайте це із зерном солі); Мені корисно вибирати назви тестів, які відображають поведінку, яку я тестую, а не назву методу. Так що не називають тести testMethod()
, testMethod1()
, testMethod2()
і так далі. Мені подобаються імена на кшталт calculatedPriceIsBasePricePlusTax()
або taxIsExcludedWhenExcludeIsTrue()
які вказують, яку поведінку я тестую; то в рамках кожного методу випробування випробовуйте лише вказану поведінку. Більшість таких форм поведінки передбачає лише один виклик до публічного методу, але може включати багато викликів до приватних методів.
Сподіваюся, це допомагає.