当用户在事件页面上输入他们的电子邮件地址时,我们需要添加事件提醒。事件是另一个域对象。我们最初的想法是创建一个 Customer 域对象和相关的 CustomerService:
public class CustomerService {
public void AddEventReminder(string emailAddress, int eventId) {
var customer = new Customer(emailAddress);
customer.AddEmailReminder(eventId);
}
}
我们如何在单元测试中验证 AddEmailReminder 方法确实被新客户调用了?
我的想法:
- 使用工厂来创造客户。这闻起来很臭,因为我认为您只应该在对象创建有一些复杂性的情况下使用工厂。
- 错误的代码。也许有更好的方法来做到这一点?
- 起订量魔法。
在单独的注释中(也许它是相关的),我们如何确定这里的聚合根?我们已经武断地决定了客户是,但它同样可能是事件。我已阅读并理解有关聚合根的文章,但在这种情况下尚不清楚。