ユーザーがイベント ページで電子メール アドレスを入力したときに、イベント リマインダーを追加する必要があります。イベントは別のドメイン オブジェクトです。最初に考えたのは、Customer ドメイン オブジェクトと関連する CustomerService を作成することでした。
public class CustomerService {
public void AddEventReminder(string emailAddress, int eventId) {
var customer = new Customer(emailAddress);
customer.AddEmailReminder(eventId);
}
}
新規顧客に対して AddEmailReminder メソッドが実際に呼び出されたことを単体テストで確認するにはどうすればよいでしょうか。
私の考え:
- ファクトリを使用して顧客を作成します。オブジェクトの作成が複雑な場合にのみファクトリを使用することになっていると思っていたので、これはにおいがします。
- 悪いコード。多分これを行うためのより良い方法がありますか?
- モクマジック。
別のメモとして (関連している可能性があります)、ここで集約ルートをどのように決定するのでしょうか? 私たちは顧客を勝手に決めましたが、それはイベントでもあります。集約ルートに関する記事を読んで理解しましたが、このシナリオでは不明です。