在 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 中测试它们。
编辑
我确信我做得对。因此,我为框架创建了一个测试并提出了拉取请求。 https://github.com/symfony/symfony/pull/1891
最佳答案
这是文档中的一个错误。
已修复 here :
use Symfony\Component\HttpFoundation\File\UploadedFile;
$photo = new UploadedFile('/path/to/photo.jpg', 'photo.jpg', 'image/jpeg', 123);
// or
$photo = array('tmp_name' => '/path/to/photo.jpg', 'name' => 'photo.jpg', 'type' => 'image/jpeg', 'size' => 123, 'error' => UPLOAD_ERR_OK);
$client = static::createClient();
$client->request('POST', '/submit', array('name' => 'Fabien'), array('photo' => $photo));
文档 here
关于symfony - 在 Symfony2 中测试文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6916989/