Инициализация объекта выполняется конструктором, поэтому «тестирование инициализации» означает «тестирование конструкторов».При тестировании нормального метода-мутатора вы выполняете интересующий метод, а затем делаете утверждения о состоянии объекта.Для конструктора это точно так же.Единственное отличие от тестирования обычного метода, если вы создаете тестовые приборы в своем методе setUp()
, состоит в том, что методы теста не вызывают сам конструктор, а полагаются на вызов в методе установки.
Тем не менее, я отказался от стиля, в котором класс ThingTest
, который тестирует класс Thing
, имеет тестовые приборы класса Thing
.Вместо этого я создаю объекты класса Thing
непосредственно в тестовых методах, используя параметризованные тесты для уменьшения дублирования кода.Я считаю, что это позволяет избежать запаха загадочного гостя кода.