我正在和.net MVC一起学习TDD。到目前为止,我已经想要moq我的方法输入对象,这是我尝试的方式不可能。
为了能够使用Moq,我创建了一个类的接口,并在控制器方法中将其用作输入对象。这工作正常,我实际上可以Moq它。 问题是当我尝试按预期运行程序时,它不会工作,因为框架试图在post上创建对象,并且接口不能以这种方式初始化。
我如何绕过这个?我真的不想在我的测试中创建一个类对象并发送它。
代码看起来像这样:
[HttpPost]
public ActionResult Setup(ISetup gameSetup)
{
if (ModelState.IsValid)
return RedirectToAction("Start", gameSetup);
return View("SetupView");
}
所以我想要Moq这个例子中的Setup类或接口。
此致
答案 0 :(得分:1)
您需要创建自定义ModelBinder
才能将HTTP响应数据绑定到ISetup
的某个实例。在模型绑定器中,您需要实例化ISetup
的具体实现,并用HTTP响应中的适当数据填充它。