Тестирование генерации исходящих URL в ASP.NET MVC с помощью Rhino Mocks - PullRequest
2 голосов
/ 11 ноября 2010

Я изо всех сил пытаюсь найти полный пример того, как создать контекст запроса, необходимый для проверки исходящих URL с помощью Rhino Mocks.

У меня есть пример использования Moq, который я пытался преобразовать в Rhino Mocks, но мне не очень повезло.

    private static HttpContextBase MakeMockHttpContext(string url)
    {
        var mocks = new MockRepository();
        var mockHttpContext = mocks.StrictMock<HttpContextBase>();
        // Mock the request
        var mockRequest = mocks.StrictMock<HttpRequestBase>();
        mockHttpContext.Expect(x => x.Request).Return(mockRequest);
        mockRequest.Expect(x => x.AppRelativeCurrentExecutionFilePath).Return(url);
        // Mock the response
        var mockResponse = mocks.StrictMock<HttpResponseBase>();
        mockHttpContext.Expect(x => x.Response).Return(mockResponse);
        mockResponse.Stub(r => r.ApplyAppPathModifier(Arg<string>.Is.Anything))
            .Do(new Func<string, string>(s => s));

        return mockHttpContext;
    }

    private string GenerateUrl(object values)
    {
        RouteCollection routeConfig = new RouteCollection();
        Global.RegisterRoutes(routeConfig);
        var mockContext = MakeMockHttpContext(null);
        var requestContext = new RequestContext(mockContext, new RouteData());

        return UrlHelper.GenerateUrl(null, null, null, 
            new RouteValueDictionary(values), routeConfig, requestContext, true);
    }

    [Test]
    public void Catalog_index_returns_root_url()
    {
        GenerateUrl(new { controller = "Catalog", action = "Index" }).ShouldEqual("/");
    }

Любая помощь будет оценена.

1 Ответ

2 голосов
/ 12 ноября 2010
...