2012-05-01 3 views
0

Я использую hanselman tutorial для использования Moq для создания модульных тестов для методов, которые принимают httpcontext в качестве входного параметра.с использованием moq для заполнения httpcontext.request

public static class MvcMockHelpers 
{ 

    public static HttpContextBase FakeHttpContext() 
    { 
     var context = new Mock<HttpContextBase>(); 
     var request = new Mock<HttpRequestBase>(); 
     var response = new Mock<HttpResponseBase>(); 
     var session = new Mock<HttpSessionStateBase>(); 
     var server = new Mock<HttpServerUtilityBase>(); 

     context.Setup(ctx => ctx.Request).Returns(request.Object); 
     context.Setup(ctx => ctx.Response).Returns(response.Object); 
     context.Setup(ctx => ctx.Session).Returns(session.Object); 
     context.Setup(ctx => ctx.Server).Returns(server.Object); 

     return context.Object; 
    } 

    public static HttpContextBase FakeHttpContext(string url) 
    { 
     var context = FakeHttpContext(); 
     context.Request.SetupRequestUrl(url); <---- error here 
     return context; 
    } 



} 

Я получаю следующее сообщение об ошибке на context.Request.SetupRequestUrl (URL);

Ошибка 1 «System.Web.HttpRequestBase» не содержит определение для «SetupRequestUrl», а метод расширения «SetupRequestUrl» принимающего первый аргумент типа «System.Web.HttpRequestBase» может быть найдена (вы отсутствует директива по использованию или ссылка на сборку?)

Пожалуйста, помогите.

Я пытаюсь найти очень простое учебное пособие по настройке объекта запроса httpcontext и перейти в метод с параметром входного контекста и иметь возможность создавать модульные тесты, но все примеры в google либо не работают, либо сложны , пожалуйста помоги.

ответ

3

Убедитесь, что вы объявили метод SetupRequestUrl расширения внутри MvcMockHelpers класса as shown by the Haacked:

public static void SetupRequestUrl(this HttpRequestBase request, string url) 
{ 
    ... 
} 

Вы должны копировать-вставить весь фрагмент кода из статьи.

+0

Дарин, где он показан .. Я ищу для него –

+2

Что вы ищете? Haacked показали метод в своем блоге. Просто Ctrl + F для 'SetupRequestUrl', чтобы найти его внутри своей статьи. –

+0

Дарин, пока так хорошо .. спасибо –