Я пишу модульные тесты для проекта (написанного на PHP с использованием PHPUnit), в котором вся его среда (загруженные компоненты, события, конфигурация, кэш, отдельные среды и т. Д.) Содержится в объекте, в котором все компоненты использовать для взаимодействия друг с другом (с использованием шаблона посредника).
Чтобы ускорить выполнение модульных тестов, я делюсь объектом среды и некоторыми другими объектами (например, в моем тестовом примере для объекта представления [как в V MVC], объект менеджера представления [который действует как фабрика для объектов представления и отвечает за фактическое отображение]) среди тестов в одном и том же тестовом примере (используя setUpBeforeClass()
и статические свойства PHPUnit).
Несмотря на то, что, насколько мне известно, объекты, которыми я делюсь, не должны влиять на целостность тестов (например, в случае представлений объект среды и менеджер представления являются общими, но отдельный объект представления созданный для каждого теста (то есть объекта, который на самом деле тестируется контрольным примером), мне просто кажется, что я все больше ошибаюсь.
Я бы предпочел, чтобы каждый тест использовал полностью изолированную среду и никак не мог повлиять на другие тесты в том же тесте. Тем не менее, это сделало бы тесты намного медленнее, и это похоже на большую цену за то, что я не могу точно определить минус и, в основном, просто "чувствует себя неправильно".
Что ты думаешь? Можете ли вы определить какие-либо недостатки, чтобы я убедил себя в том, что стоит больше времени выполнения? Или я просто чрезмерно реагирую, и это совершенно нормально?