我正在研究 spring 4.2 中的 spring 域事件功能,它看起来真的很棒。但是,测试起来有点混乱。
鉴于以下业务逻辑:
public DomainEvent<Order> CreateOrder(Order order) throws OrderRejectedException {
//INSERT BUSINESS LOGIC HERE
this.publisher.publishEvent(new OrderAccepted(order));
}
发布者被插入到构造函数中,所以我可以很容易地模拟它,
在我的 junit 类中,我想断言 applicationEvent 是从我的服务发布的。理想情况下,这应该在没有模拟的情况下完成。有谁知道是否存在一个“测试发布者”来保留所有正在发布的事件,所以我可以在测试期间将其注入我的服务并在发布者的这个测试实例上断言?我可以自己写,但这听起来像是一个普遍的问题,所以它应该在 MHO 中存在一个默认的测试实例