2010-03-26 1 views
12

Я все еще новичок в тестировании модулей, а именно PHPUnit в качестве основы тестирования.Операции с файлами модулей - где сохранить структуру каталогов?

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

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

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

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

ответ

15

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