2013-11-11 2 views
0

Как получить TempData после RedirectToAction в Rhino Mock test?Rhino Mock, получить TempData после RedirectToRoute

Код

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

Я предполагаю, что это контроллер MVC? Разве это не просто случай доступа к свойству «TempData» и проверке? –

+0

Да, конечно. Я думаю, контроллер Tempdata должен быть издевался, прежде чем я смогу работать с тестом NUnit. –

ответ

1

Свойства и методы базовых классов являются частью вашего производного класса, и, следовательно, являются частью тестируемой системы (SUT). Вам нужно только высмеять зависимости от тестируемой системы - другие классы, с которыми взаимодействует тестируемая система.

В этой ситуации вам не нужно издеваться, потому что TempData является собственностью ControllerBase, что контроллер является производным от:

using (var controller = new TestController(x => x.Register(service))) 
{ 
    var result = (RedirectToRouteResult)controller.Action1(); 
    Assert.AreEqual("Bar", controller.TempData["Foo"]); 
} 
Смежные вопросы