我在symfony上下文中有一个学说的事件侦听器,它侦听实体更改并将更改通知给单独的微服务。我实现了一个postUpdate方法,该方法通过UnitOfWork ChangeSet获取更改的属性
$changedAttributes = $args->getEntityManager()
->getUnitOfWork()
->getEntityChangeSet($subject);
测试这段代码非常困难,因为由于预言不支持引用,所以我无法模拟UnitOfWork
"Prophecy\Exception\Doubler\ReturnByReferenceException : Returning by reference not supported."
现在,我知道可以使用PreUpdate方法代替PostUpdate,但是我不想这样做。 (除非事实证明我没有其他合理选择。)
是否可以装饰LifeCycleEvent,这样我就不必模拟它了?这样更改集可以附加到LifeCycleEvent上,并且对于特定测试,更改集将始终返回修饰后的值?
谢谢大家。