我正在學習使用Moq來測試我的控制器,但我不確定如何繞過來自控制器的數據層調用。說我有一個像下面這樣的方法。我會採取什麼方法來測試像這樣的簡單控制器?如何使用Moq繞過數據層?
[HttpPost]
public ActionResult SomeController(SomeModel model)
{
if(ModelState.IsValid)
{
// Perform some manipulation on modeldata
model.Value++;
// Upload Model, Get ID
model.Id = MyDataLayer.UploadToDb(model);
}
return View(model);
}
您需要使用接口抽象出您的數據層。並在控制器的contstructor中注入數據層的實現。然後實現可以是moq'd版本或實際實現 – KiwiPiet
要引用HotFuzz(指向@KiwiPiet):「他說了什麼」。 – code4life
提供示例中的MyDataLayer是靜態的還是局部變量? – Nkosi