Я использую модульные тесты Visual Studio, поэтому я не смог использовать Helper Tim, упомянутый «из коробки». (Не требуется). В любом случае статья показала код, который мне был нужен. На самом деле в разделе «никто не хочет использовать этот уродливый код».
RouteCollection routes = new RouteCollection();
MvcWeb.MvcApplication.RegisterRoutes(routes);
var httpContext = MockRepository.GenerateStub<HttpContextBase>();
httpContext.Stub(x => x.Request).Return(MockRepository.GenerateStub<HttpRequestBase>());
httpContext.Request.Stub(x => x.PathInfo).Return("");
httpContext.Request.Stub(x => x.AppRelativeCurrentExecutionFilePath).Return("~/foo/bar");
var routeData = routes.GetRouteData(httpContext);
Assert.AreEqual(routeData.Values["controller"],"foo");