PHPUnit模拟RequestStack的symfony

时间:2016-04-28 20:13:39

标签: unit-testing symfony mocking phpunit

我不明白如何嘲笑:services.Configure<RazorViewEngineOptions>(options => { options.FileProvider = new AzureFileProvider(Configuration); });

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

我将symfony与getCurrentRequest()->getContent()类一起使用。

整个代码是

RequestStack

非常感谢。

1 个答案:

答案 0 :(得分:9)

你实际上不必嘲笑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变量。