我不明白这是怎么嘲笑的:$requestStack->getCurrentRequest()->getContent()

有2种方法:getCurrentRequest()->getContent()并返回一个json对象(PO​​ST响应)

我在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变量。

07-26 04:15