Согласно Docs, SimpleTest has support for FileUpload testing baked in since version 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, и я не мог найти пример на своей домашней странице. Вы, возможно, захотите ask in their support forum though.
Но в основном, не так много тестирования использования, что форма загружает файл. Это проверенное поведение браузера. Тестирование кода, который обрабатывает загрузку, имеет больше смысла. Я не знаю, как вы внедрили свой код FileUpload, но если бы мне пришлось это реализовать, я бы избавился от зависимости от массива $_FILES
в первую очередь. Создайте класс FileRequest
, который вы можете передать массиву $_FILES
. Затем вы можете обрабатывать загрузку из класса. Это позволит вам протестировать функциональность без фактической загрузки файла. Просто настройте свой экземпляр FileRequest соответственно. Вы могли бы даже высмеять файловую систему с помощью vfsStreamWrapper, поэтому вам даже не нужны фактические файлы.
Можете ли вы показать фрагмент кода? – Jhn
Расширение этого ответа на то, как издеваться над перемещением файлов в файле move_uploaded_file, было бы очень полезно. –
@pixelastic Любой шанс, что вы могли бы показать нам свой код для этого? – Magiranu