我按照 symfony 网站上的教程对我的控制器进行 phpunit 测试。
我试图在表单上测试上传,我在这个表单上有 3 个字段:标题、描述和文件。
我用 :
public function testScenarioAdd() {
$client = static::createClient();
$x_wsse = 'UsernameToken Username="username@fai.fr", PasswordDigest="aeirugbjcUbfmùJK", Nonce="OTMzOGMwYzFkYTk2MzJmYzBh", Created="2013-11-12T10:22:15+01:00"';
//X_Wsse is for the connection systeme on my application.
$image = new UploadedFile(
'/past/to/your/images.jpg',
'images.jpg',
'image/jpeg',
100000
);
$crawler = $client->request('POST', '/ad/create', array('ad_form' => array('title' => 'test', 'description' => 'Test description')),array(), array('CONTENT_TYPE' => 'application/x-www-form-urlencoded', 'HTTP_X-WSSE' => $x_wsse));
$response = $client->getResponse()->getContent();
$json_response = json_decode($response);
print_r($response);
}
当我启动它时,我有一个错误提示: {"app_error":{"success":500,"result":[{"message":"Array to string conversion",...
难道我做错了什么 ?或在我的代码中遗漏了什么?
谢谢你的帮助 :)
编辑 :
谢谢,但是,我在那里所做的工作是在没有上传的情况下进行另一个测试,我仍然尝试过它并且它不起作用。我仍然有要字符串的错误数组...我认为它来自功能 UplaodedFile 或者可能来自我的控制器本身,因为当我尝试使用 symfony 网站上的其他解决方案时
$photo = array(
'tmp_name' => '/path/to/photo.jpg',
'name' => 'photo.jpg',
'type' => 'image/jpeg',
'size' => 123,
'error' => UPLOAD_ERR_OK
);
随着把
$crawler = $client->request('POST', '/ad/create', array('ad_form[title]' => 'test', ad_form[description] => 'test description'),array('file' => $image),array('CONTENT_TYPE' => 'application/x-www-form-urlencoded', 'HTTP_X-WSSE' => $x_wsse));
我的控制器的重要部分是:
if ('POST' === $request->getMethod()) {
$form->bind($request);
if ($form->isValid())
{
$Ad->preCreate();
$odm->persist($Ad);
$odm->flush();
$odm->clear();
$data = $this->listAction($request, 1, 5);
Tags::setEvent($request, $this->container, 'member.create.ad', $user->getId(), $Ad->getId());
return $data;
} else {
$data = Errors::formatJson($form, $this->container);
}
}
}
return new JsonResponse(array('ad_create' => $data));
我是 symfony 的新手,我真的不知道这个错误是从哪里来的......