我有一个 Mvc3 控制器的模拟(使用 Moq)设置,例如。
[TestMethod]
public void Step_One_Post_Should_Redirect_To_Step_Two()
{
// this test checks that when I submit a type parameter of StepOneModel and
// the next button was clicked Request["next"] , then goto Step Two
}
唯一停止此测试运行的是从控制器调用的 Save 方法,该方法失败,因为在此测试上下文中的 Session 中未正确设置值。真的我想从这个单元测试中省略这个数据库调用。
基本上我如何从控制器操作中欺骗/模拟 Save(model) 调用?
[HttpPost]
public ActionResult Index(IStepViewModel step)
{
// after model is deserialized
if (!string.IsNullOrEmpty(Request["next"]))
{
Save(model) <-- the bit blocking me
}
return View(model) <-- the bit I want to assert against
}