Rhino Mock,在重定向到路由后获取 TempData



如何在 Rhino Mock 测试中重定向到操作后获取 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 ?!
 }

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

在这种情况下,您不需要模拟,因为 TempDataControllerBase 的属性,您的控制器派生自:

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

最新更新