ある時点での時間であなたは、スケジューラは、現在の日付を確認し、予定の項目に対してそれをチェックしますね。
「現在の日付を確認」の部分が別のコンポーネントで区切られていることを確認した場合は、単体テストでこの動作を切り替えて、指定した日付を返すことができます。
パブリックインターフェイスIDateTimeManager { DateTime GetCurrentDateTime(); }
class ProductionDateTimeManager : IDateTimeManager
{
public DateTime GetCurrentDateTime()
{
throw new NotImplementedException();
}
}
public class Scheduler
{
public Scheduler(IDateTimeManager dateTimeManager)
{
this.DateTimeManager = dateTimeManager;
}
public Scheduler()
{
this.DateTimeManager = new ProductionDateTimeManager();
}
public void Execute()
{
DateTime current = DateTimeManager.GetCurrentDateTime();
}
private IDateTimeManager DateTimeManager { get; set; }
}
を対処するほくろのようなツールを使用することができます – sll