Итак, я прочитал официальные документы JUnit, в которых содержится множество примеров, но (как и во многих других случаях) у меня есть Eclipse, и я пишу свой первый тест JUnit, и я задыхаюсь от какого-то базового дизайна/концептуальные проблемы.
Итак, если мой WidgetUnitTest тестирует цель с именем Widget, я предполагаю, что мне нужно будет создать справедливое число Widget для использования во всех методах тестирования. Должен ли я конструировать эти Widget в конструкторе WidgetUnitTest или в методе setUp()? Должно ли быть отношение 1:1 Widget к методам тестирования или использовать лучшие методы, чтобы максимально использовать Widget?
Наконец, насколько гранулярность должна существовать между утверждениями/неудачами и методами тестирования? Пурист может утверждать, что в методе тестирования должны существовать утверждения 1 и только 1, однако в рамках этой парадигмы, если Widget имеет геттер, называемый getBuzz(), я получаю 20 различных методов тестирования для getBuzz() с именами типа
@Test
public void testGetBuzzWhenFooIsNullAndFizzIsNonNegative() { ... }
В отличие от одного метода, который проверяет множество сценариев и содержит множество утверждений:
@Test
public void testGetBuzz() { ... }
Спасибо за понимание некоторых мастеров JUnit!