私は現在、複雑なオブジェクト (主にリポジトリ オブジェクト) をパラメーターとして持つメソッドを持つプロジェクトに取り組んでいます。テストは、MSTest を使用して実行する必要があります。オブジェクトを TestInitialize メソッドで作成して、テスト メソッドの Actual Method にパラメータとして渡すための引数として使用できるようにするのは賢明なアプローチでしょうか? より良い代替案を提案してください。
その下に単体テストが必要なメソッド(Exectue()メソッド)のサンプルコードを添付しています。
public class AddOrdersToDbCommand
{
private IOrdersRepository _ordersRepository;
private OrderSetting _ordersSetting;
public AddOrdersToDbCommand(IOrdersRepository ordersRepository, OrderSetting ordersSetting)
{
_ordersRepository = ordersRepository;
_ordersSetting = ordersSetting;
}
public void Execute()
{
OrderSetting modifyOrderSettings = _ordersRepository.Get(_ordersSetting.Id);
modifyOrderSettings.Name = _ordersSetting.Name;
modifyOrderSettings.Status = _ordersSetting.Status;
modifyOrderSettings.UpdatedBy = _ordersSetting.UpdatedBy;
modifyOrderSettings.UpdatedDate = _ordersSetting.UpdatedDate;
_ordersRepository.SaveOrUpdate(modifyOrderSettings);
_ordersRepository.DbContext.CommitChanges();
}
}