在我的 HomeController 中,我有以下内容:
public ActionResult Index()
{
SetModuleTitle("Welcome");
return RedirectToAction( "DashBoard", "Home" );
}
SetModuleTitle 在父类中定义如下:
public void SetModuleTitle(string title)
{
ViewData["ModuleTitle"] = string.Format("PM4 - {0}", title);
}
没有什么令人难以置信的。现在我正在尝试编写我的测试来测试 SetModuleTitle 方法:
[Subject( typeof( HomeController ) )]
public class when_the_home_page_is_requested_by_logged_in_user_ : context_for_a_home_controller_for_logged_user
{
static ActionResult result;
Because of = () => result = HomeController.Index();
It should_set_the_module_title = () => ( ( ViewResult ) result ).ViewData[ "ModuleTitle" ].ShouldEqual( "PM4 - Dashboard" );
}
我正确地被告知
无法将“System.Web.Mvc.RedirectToRouteResult”类型的对象转换为“System.Web.Mvc.ViewResult”类型。
那么在这种情况下我将如何设置 MSpec 测试呢?
大卫