В документации Symfony2 приводится простой пример:
$client->request('POST', '/submit', array('name' => 'Fabien'), array('photo' => '/path/to/photo'));
Для имитации загрузки файла.
Однако во всех моих тестах я ничего не получаю в объекте $ request в приложении и ничего в массив $ _ FILES
.
Вот простой WebTestCase
, который дает сбой. Он самодостаточен и проверяет запрос, который $ client
создает на основе переданных вами параметров. Он не тестирует приложение.
class UploadTest extends WebTestCase {
public function testNewPhotos() {
$client = $this->createClient();
$client->request(
'POST',
'/submit',
array('name' => 'Fabien'),
array('photo' => __FILE__)
);
$this->assertEquals(1, count($client->getRequest()->files->all()));
}
}
Просто для ясности. Это не вопрос о том, как загружать файлы, это я умею. Речь идет о том, как протестировать их в Symfony2.
Edit
Я уверен, что делаю это правильно. Итак, я создал тест для Framework и сделал запрос на перенос. https://github.com/symfony/symfony/pull/1891