単体テスト用のオブジェクトを簡単に作成できるように、オブジェクトビルダーを作成しようとしています。Func <>を渡すことができるように、With()メソッドを作成したいと思います。これにより、正しいプロパティが設定されます。
これが私がこれまでに持っているものです:
public class EquipmentModelBuilder
{
public EquipmentModel Object { get; set; }
public EquipmentModelBuilder()
{
Object = new EquipmentModel();
}
public EquipmentModelBuilder WithCategory(int categoryId)
{
Object.EquipmentCategoryID = categoryId;
return this;
}
public EquipmentModelBuilder With(Func<EquipmentModel> setter)
{
Object = setter.Invoke();
return this;
}
public EquipmentModel Build()
{
return Object;
}
}
もちろん、WithCategory()は機能しますが、各プロパティのすべてのメソッドを作成する必要はありません。次のことができるようにしたいと思います。
EquipmentModelBuilder.With(x => x.Property1 = 1).With(x => x.Property2 = "2").Build()
私が間違っていることについて何か考えはありますか?