0
コントローラメソッドがTask.Runを有する場合NUnitのテストケースを記述する方法を知っておく必要があり()方法有するユニットテストコントローラ方法にTask.Run(())
たとえば以下のコードを見て
public class DataProcessController : Controller
{
public ActionResult Index(DataProcess model)
{
try
{
Task task = Task.Run(() =>
{
try
{
Database.Insert(model);
}
catch(Exception ex)
{
Database.Log(ex);
}
});
}
catch(Exception ex)
{
ModelState.AddModelError("Not able to process the data",string.Empty);
return this.View(model);
}
return RedirectToAction("Index");
}
}
*************************************************
public class DataProcessControllerTest
{
[Test]
public void Index()
{
DataProcessController objController = new DataProcessController();
DataProcess process = new DataProcess() { ProcessId = 501, ProcessName = "MorningBatch" };
var result = objController.Index(process);
Assert.IsNotNull(result);
}
}
***********************************
上記のテストメソッドを実行すると、タスク内のDatabase.Insert(モデル)行には当てられません。レコードが挿入されたかどうかをテストする必要があります。
テストケースの記述方法を助けてください。コントローラーメソッドのコードのすべての行に当てなければなりません。
助けてください。
事は、我々はNUnitのテストケースを記述する必要が与えられたコードで...コントローラを変更することはできませんです....だからこのシナリオのために書くことができます... –