Symfony 3 mock сервис в функциональных тестах phpunit и liip

Я использую Symfony 3.4. У меня есть функциональные тесты, которые простираются от Liip\FunctionalTestBundle\Test\WebTestCase и в какой-то функции я хочу смоделировать какой-то сервис, я создаю макет объекта для сервиса, но в действии у меня все еще есть оригинальный сервис, как имитировать сервис

в моей функции

        $mock = $this->getMockBuilder(AdditionalFunction::class)
        ->disableOriginalConstructor()->getMock();

    $this->getContainer()->set('app.additional_function', $mock);


    $this->getClient()->request(
        Request::METHOD_GET,
        $uri
    );

и в моих действиях $uri

public function sendAction(OutboundInvoice $outboundInvoice)
{
    $test = $this->get('app.additional_function');

в переменной $test У меня был оригинальный класс ‌AppBundle\Helper\AdditionalFunction

Как издеваться над сервисом?

1 ответ

Вы можете сделать следующее, как предложено в https://github.com/liip/LiipFunctionalTestBundle/issues/107

$mock = $this->createMockInAnyWayYouWant();
static::$kernel->getContainer()->set('id_service', $mock);
Другие вопросы по тегам