1

我使用 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

如何模拟服务?

4

1 回答 1

-1

您可以按照https://github.com/liip/LiipFunctionalTestBundle/issues/107#issuecomment-358267059中的建议执行以下操作

$mock = $this->createMockInAnyWayYouWant();
static::$kernel->getContainer()->set('id_service', $mock);
于 2018-08-30T13:10:50.323 回答