Модульные операции с файлами файлов - где сохранить структуру каталогов?
Я все еще новичок в модульном тестировании, а именно PHPUnit в качестве рамки тестирования.
Предположим, что я создаю unit test для класса загрузчика ресурсов. Класс ищет ресурсы для загрузки в двух каталогах (глобальный и пользовательский).
Чтобы протестировать класс, я хотел бы настроить каталог тестирования, содержащий некоторые файлы ресурсов. Я хотел бы поместить каталог mock в тестовый пакет (пакет является частью веб-приложения, которое будет распространяться.)
Существует ли соглашение о том, где разместить этот тестовый каталог в контексте набора тестов PHPUnit, составленного с использованием файловой системы, как описано здесь?
Есть ли способ (например, константа, определенная PHPUnit при запуске теста) для доступа к такой макетной директории из unit test без указания ее точного местоположения, то есть пути относительно текущего набора тестов? Или я просто использую dirname(__FILE__)
и составляю абсолютный путь от этого?
Ответы
Ответ 1
Поскольку загрузчик ресурсов ищет файлы в каталогах и вы хотите проверить правильное взаимодействие загрузчика с этими каталогами, вы должны издеваться над файловой системой. Если вы протестируете с помощью реального каталога, вы рискуете выйти извне в эти каталоги, которые могут повлиять на результат теста. Использование vfs также намного быстрее.