Rhino Mock,在RedirectToRoute之后得到TempData

时间:2013-11-11 13:36:36

标签: .net asp.net-mvc rhino-mocks rhino-mocks-3.5

如何在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 ?!
 }

1 个答案:

答案 0 :(得分:1)

基类的属性和方法是派生类的一部分,因此是被测系统(SUT)的一部分。您只需要模拟被测系统的依赖 - 被测系统与之交互的其他类。

在这种情况下,您不需要模拟,因为TempDataControllerBase的属性,您的控制器源自:{/ p>

using (var controller = new TestController(x => x.Register(service)))
{
    var result = (RedirectToRouteResult)controller.Action1();
    Assert.AreEqual("Bar", controller.TempData["Foo"]);
}