我发现了有关如何在早期版本的ASP.NET MVC中对来自Stephen Walther和Scott Gu的路由进行单元测试的文章,但它在ASP.NET MVC Beta 1中不起作用。如果我需要使用模拟框架,我更喜欢使用Rhino Mocks的解决方案。
答案 0 :(得分:3)
答案 1 :(得分:2)
我使用Visual Studio单元测试,这就是为什么我不能使用开箱即用的Helper Tim。 (需要NUnit)。无论如何,文章展示了我需要的代码。 Actualy在“没有人想使用这个丑陋的代码”部分。
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");
答案 2 :(得分:0)