Doctrine Symfony 4与条令订阅者/监听者的测试

Doctrine Symfony 4与条令订阅者/监听者的测试,doctrine,phpunit,symfony4,codeception,Doctrine,Phpunit,Symfony4,Codeception,我想使用Doctrine订阅服务器在特定部件上测试我的Symfony 4应用程序的功能。所以我模拟了我在这篇文章中提到的服务: 但随后我遇到了这个问题:如果从容器中获取或通过条令事件获取,条令订阅者(或侦听器)服务是不同的。 如果我转储从容器中获取的条令订阅服务器的spl_object_id和同一条令订阅服务器的spl_object_id,但由条令事件(如onFlush)触发,则这不是相同的id 这意味着在我的测试中,我不能用一些断言更新我的mock,因为我获取的条令订阅服务器不是条令事件使用的

我想使用Doctrine订阅服务器在特定部件上测试我的Symfony 4应用程序的功能。所以我模拟了我在这篇文章中提到的服务:

但随后我遇到了这个问题:如果从容器中获取或通过条令事件获取,条令订阅者(或侦听器)服务是不同的。 如果我转储从容器中获取的条令订阅服务器的spl_object_id和同一条令订阅服务器的spl_object_id,但由条令事件(如onFlush)触发,则这不是相同的id

这意味着在我的测试中,我不能用一些断言更新我的mock,因为我获取的条令订阅服务器不是条令事件使用的订阅服务器

也许这是条令订阅者的一种特定和正常的行为,但是如果有人能够解释它并建议如何检索正确的条令服务实例来更新它(在我的例子中是mock)

编辑

Symfony messenger transport也是如此。传输是重复的


Symfony问题:

这是一个奇怪的错误,我也有同样的问题,但没有找到合适的解决方案。