Moq .net控制器方法对象

时间:2014-02-04 18:35:58

标签: .net tdd moq

我正在和.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类或接口。

此致

1 个答案:

答案 0 :(得分:1)

您需要创建自定义ModelBinder才能将HTTP响应数据绑定到ISetup的某个实例。在模型绑定器中,您需要实例化ISetup的具体实现,并用HTTP响应中的适当数据填充它。