Модульное тестирование файловых операций - где поддерживать фиктивную структуру каталогов? - PullRequest
12 голосов
/ 26 марта 2010

Я все еще новичок в модульном тестировании, и, в частности, PHPUnit в качестве основы тестирования.

Предположим, я создаю модульный тест для класса загрузчика ресурсов. Класс ищет ресурсы для загрузки в двух каталогах (глобальном и пользовательском).

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

Существует ли соглашение о том, где поместить этот каталог тестирования в контекст набора тестов PHPUnit, составленного с использованием файловой системы, как указано здесь ?

Есть ли способ (например, константа, определенная PHPUnit при запуске теста) для доступа к такой фиктивной директории из модульного теста без указания его точного местоположения, то есть пути относительно текущего набора тестов? Или я просто использую dirname(__FILE__) и составляю из этого абсолютный путь?

1 Ответ

15 голосов
/ 26 марта 2010

Поскольку загрузчик ресурсов ищет файлы в каталогах, и вы хотите проверить правильность взаимодействия загрузчика с этими каталогами, вы должны смоделировать файловую систему . Если вы тестируете с реальным каталогом, вы рискуете изменить эти каталоги извне, что может повлиять на результат теста. Использование VFS также намного быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...