首页 > 解决方案 > 在 php 7.2 的测试中替换 Symfony 服务

问题描述

我正在尝试将我在 Symfony 3.3 和 php 7.1 上运行的应用程序升级到 php 7.2,但是当我运行 phpunit 时遇到了大量已弃用的消息。最讨厌的是:

“user.user_service”服务已经初始化,取而代之的是自 Symfony 3.3 以来已弃用,并且在 4.0 中将失败:7x

这是因为我在 setUp 方法中有这行:

$this->userService = $this->getMockBuilder(UserService::class)
    ->setMethods(['update'])
    ->getMock();
$container->set('user.user_service', $this->userService);

7x 是因为我在该课程中有 7 个测试用例,并且为每个测试用例触发了 setUp。我该如何处理这个问题?我不能删除这个模拟,因为它很重要。

我不明白为什么 Symfony 完全指向这个测试用例,因为我在所有测试中都以这种方式替换了很多服务。我没有在这个 setUp 方法之前的任何地方替换这个服务,所以很奇怪。

标签: phpsymfonyphpunitphp-7.2

解决方案


推荐阅读