Материнский объект — это класс, используемый при тестировании, который помогает создавать примеры объектов, которые вы используете для тестирования (М. Фаулер, 2006)
Этот шаблон помогает создавать определенные объекты, которые можно повторно использовать в нескольких тестах, что позволяет делать ваш код более читабельным.
По факту это броское название для фабрики, которая не только возвращает объект, но и задаёт его состояние.
❗️Конечно, к его созданию использованию нужно подходить с умом. Помните, что создавая методы под каждое состояние, можно очень сильно раздуть класс и превратить его в так называемый
GodClass. Его будет сложно поддерживать и придётся страдать, если изменится поведение основной сущности.Не смотря на определенные минусы данного подхода он может дать быстрый буст при внедрении тестов в ваш проект, или быстро описать давно устоявшиеся сущности.
❔Есть ли более крутая альтернатива? Да —
Test Data Builders (пост будет чуть позже), но на старте она будет требовать больше усилий и времени. #PHP #testing #unit #source #junior