Макет файловой системы для модульного тестирования Perl - PullRequest
11 голосов
/ 13 июля 2011

Есть ли метод или модуль, который позволяет мне имитировать поддельную файловую систему для использования с модульным тестированием Perl?

Я использую различные модули Test::* и Test::Mock* в своем модульном тестировании, но иногда я хотел бы иметь возможность подделать файловую систему. Простым примером (и минимальным требованием) будет подделка результата от операторов проверки файлов -r или -f, чтобы при вызове объектов или модулей, выполняющих проверки файлов, мне было легче контролировать результат.

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

Обновление:

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

1 Ответ

6 голосов
/ 13 июля 2011

Это стоит посмотреть: Filesys :: Virtual и Filesys :: Virtual :: Async .Я использовал первый.Смешанный с Path :: Class и File :: Temp , можно легко и элегантно выполнять все виды самоочищающихся вещей. Test :: Virtual :: Filesystem также выглядит интересно.

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