Совместное использование инструментов модульного тестирования

Я пишу модульные тесты для проекта (написанного на PHP, с использованием PHPUnit), для которого вся его среда (загружена компоненты, события, конфигурация, кеш, одиночные экземпляры среды и т. д.), хранящийся в объекте, который все компоненты используют для взаимодействия друг с другом (с использованием шаблона-посредника).

Чтобы ускорить выполнение модульных тестов, я Я разделяю объект среды и некоторые другие объекты (например, в моем тестовом примере для объекта представления [как в V MVC], объект диспетчера представления [который действует как фабрика для объектов представления и отвечает за фактический рендеринг] ) среди тестов в одном и том же тестовом примере (с использованием PHPUnit setUpBeforeClass () и статических свойств).

Даже хотя, насколько мне известно, объекты, которыми я делюсь, не должны влиять на целостность тестов (в случае представлений, например, общий объект среды и диспетчера представлений, но для каждого теста создается отдельный объект представления - это объект, который на самом деле тестируется с помощью тестового примера), мне кажется, что это все больше и больше неправильного.

Я бы предпочел, чтобы каждый тест использовал полностью изолированную среду и не мог воздействовать на другие тесты в том же тестовом примере. в любом случае. Однако из-за этого тесты будут выполняться намного медленнее, и это кажется большой ценой за то, что я не могу точно определить обратную сторону и в основном просто «кажется неправильным».

Что вы думаете? Можете ли вы определить какие-либо недостатки, чтобы я убедился, что более длительное время выполнения стоит того? Или я просто слишком реагирую, и все в порядке?

6
задан shesek 16 August 2011 в 14:27
поделиться