我有一个小系统,它使用乔纳森·奥利弗( Jonathan )的CommonDomain和EventStore。
如何对聚合根进行单元测试以验证是否引发了正确的事件?在IRouteEvents中有一个接口CommonDomain。看起来我可以模拟它来直接从AggregateBase获取事件,但是我如何将它实际传递给我的Subscriber类呢?
请解释让EventStoreRepository.GetById在聚合不存在的情况下创建新流的原因。这种行为似乎赋予了GetById双重责任,在我的情况下,这可能会导致不希望看到的结果。例如,我的聚合总是为它们的创建实现一个工厂方法,以便它们的第一个事件导致设置聚合的Id。如果一个命令是在聚合存在之前处理的,那么它可能会成功,即使聚合没有设置它的Id或初始化其他状态(crash-n-burn with null reference exception的可能性也是一样的)。