Согласно Документам, SimpleTest поддерживает тестирование FileUpload начиная с версии 1.0.1:
File upload testing Can simulate the input type file tag 1.0.1
Я просмотрел примеры на их сайте и предположил, чтовы бы использовали что-то вроде
$this->get('http://www.example.com/');
$this->setField('filename', 'local path');
$this->click('Go');
для отправки файла, а затем использовали бы обычные утверждения, чтобы проверить, что загрузка работает так, как вам нужно.Но это на самом деле просто дикая догадка, так как я не знаком с SimpleTest и не могу найти пример на их домашней странице.Возможно, вы захотите спросить на их форуме поддержки.
Но, в принципе, не так уж много пользы для тестирования того, что форма загружает файл.Это проверенное поведение браузера.Тестирование кода, который обрабатывает загрузку, имеет больше смысла.Я не знаю, как вы реализовали свой код FileUpload, но если бы мне пришлось это реализовать, я бы сначала избавился от зависимости от массива $_FILES
.Создайте класс FileRequest
, в который вы можете передать массив $_FILES
.Затем вы можете обработать загрузку из класса.Это позволит вам проверить функциональность без фактической загрузки файла.Просто настройте свой экземпляр FileRequest соответственно.Вы даже можете издеваться над файловой системой с помощью vfsStreamWrapper , поэтому вам даже не нужны реальные файлы.