如何在Rhino Mock测试中使用RedirectToAction获取TempData?
代码
public ActionResult Action1() {
TempData["Foo"] = "Bar";
return RedirectToAction("Action2");
}
public ActionResult Action2() {
return View();
}
测试
using (var controller = new TestController(x => x.Register(service))){
var result = (RedirectToRouteResult)controller.Action1();
// How to get TempData value there ?!
}
答案 0 :(得分:1)
基类的属性和方法是派生类的一部分,因此是被测系统(SUT)的一部分。您只需要模拟被测系统的依赖 - 被测系统与之交互的其他类。
在这种情况下,您不需要模拟,因为TempData
是ControllerBase
的属性,您的控制器源自:{/ p>
using (var controller = new TestController(x => x.Register(service)))
{
var result = (RedirectToRouteResult)controller.Action1();
Assert.AreEqual("Bar", controller.TempData["Foo"]);
}