Хорошо, я думаю, что понял, где я ошибался.Однако сначала я должен предоставить код, вызываемый
return RedirectToAction ("DashBoard", "Home");
public ActionResult DashBoard()
{
SetModuleTitle("Dashboard");
return View();
}
Итак, если мое понимание вернопосле моего теста с именем
из-за = () => result = HomeController.Index ();
возвращается объект RedirectToAction и выполнение кода останавливается на этом, т.е.он не вызывает метод контроллера, указанный в RedirectToAction.Это имело бы смысл, потому что в конце концов мы делаем UNIT-тестирование, а НЕ интеграционное тестирование.Так что нет смысла тестировать метод SetModuleTitle здесь.
Вместо этого должен быть реализован код для проверки вызова метода Dashboard:
[Subject(typeof(HomeController))]
public class when_the_dashboard_page_is_requested_by_logged_in_user : context_for_a_home_controller_for_logged_user
{
static ActionResult result;
Because of = () => result = HomeController.DashBoard();
It should_set_the_module_title = () =>
{
( ( ViewResult ) result ).ViewData[ "ModuleTitle" ].ShouldEqual( "PM4 - Dashboard" );
};
It should_return_the_dashboard_page = () =>
result.ShouldBeAView().And().ShouldUseDefaultView();
}
Если бы кто-то более знающий мог опровергнуть, подтвердить или иным образом мое понимание, это было бы здорово.