如何使用特定的EntityChangeSet装饰主义事件

时间:2019-06-09 10:53:13

标签: unit-testing symfony doctrine lifecycle prophecy

我在symfony上下文中有一个学说的事件侦听器,它侦听实体更改并将更改通知给单独的微服务。我实现了一个postUpdate方法,该方法通过UnitOfWork ChangeSet获取更改的属性

$changedAttributes = $args->getEntityManager()
  ->getUnitOfWork()
  ->getEntityChangeSet($subject);

测试这段代码非常困难,因为由于预言不支持引用,所以我无法模拟UnitOfWork

"Prophecy\Exception\Doubler\ReturnByReferenceException : Returning by reference not supported."  

现在,我知道可以使用PreUpdate方法代替PostUpdate,但是我不想这样做。 (除非事实证明我没有其他合理选择。)

是否可以装饰LifeCycleEvent,这样我就不必模拟它了?这样更改集可以附加到LifeCycleEvent上,并且对于特定测试,更改集将始终返回修饰后的值?

谢谢大家。

0 个答案:

没有答案