我正在学习使用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