我不明白这是怎么嘲笑的:$requestStack->getCurrentRequest()->getContent()
有2种方法:getCurrentRequest()->getContent()
并返回一个json对象(POST响应)
我在RequestStack
类中使用symfony。
整个代码是
class MessageReceivedService
{
protected $message;
public function __construct(RequestStack $requestStack)
{
$this->message = json_decode($requestStack->getCurrentRequest()->getContent());
}
public function getMessage()
{
return $this->message;
}
}
非常感谢你。
最佳答案
实际上,您不必模拟RequestStack
类,因为它基本上是一个容器。
如果要使用RequestStack
进行测试,可以执行以下操作:
<?php
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
class MessageReceivedServiceTest extends \PHPUnit_Framework_TestCase
{
public function test()
{
$request = new Request([], [], [], [], [], [], [], json_encode([
'foo' => 'bar'
]));
$requestStack = new RequestStack();
$requestStack->push($request);
// Do your tests
}
}
当您在
currentRequest
变量上调用$requestStack
时,它应该返回$request
变量。