如何在ASP.NET MVC Beta 1中单元测试路由?

时间:2009-01-30 09:53:16

标签: .net asp.net-mvc unit-testing

我发现了有关如何在早期版本的ASP.NET MVC中对来自Stephen WaltherScott Gu的路由进行单元测试的文章,但它在ASP.NET MVC Beta 1中不起作用。如果我需要使用模拟框架,我更喜欢使用Rhino Mocks的解决方案。

3 个答案:

答案 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)