Невозможно привести объект типа Castle.Proxies.HttpRequestBaseProxy к типу System.Web.HttpRequestWrapper - PullRequest
0 голосов
/ 16 июня 2020

У меня возникла проблема при написании модульного теста для метода, который принимает параметр HttpRequestBase. Я создал объект Moq для HttpRequestBase и присвоил этому объекту коллекцию значений ServerVariable. Ниже мой код

[TestCase("ABC")]
    public void Test_GetIP_CheckRequestIsNotEmpty(string servervariable)
    {
        // Arrange            
        moqRequest.Setup(x => x.ServerVariables).Returns(new NameValueCollection
                        { { servervariable, "MY_CUSTOM_VALUE" } });
        // Act
        var result = Common.getIP(moqRequest.Object);
    }

Основной метод, который у меня есть для UnitTest.

Public Shared Function getIP(ByVal poRequest As System.Web.HttpRequestBase) As String
            Return getIPWrapper(poRequest)
        End Function

Private Shared Function getIPWrapper(ByVal poRequest As System.Web.HttpRequestWrapper)
    If (poRequest Is Nothing) Then
            Throw New ArgumentNullException("Request Cannot be null")
        End If
        Dim sResult As String = ""
        //// Some code here.

        Return sResult
    End Function

Но когда getIPMethod вызывается из класса Test, происходит сбой в " getIPWrapper (poRequest)"и говорит:" Невозможно преобразовать объект типа Castle.Proxies.HttpRequestBaseProxy "в тип System.Web.HttpRequestWrapper". Как передать этот объект HttpRequestWrapper? Любая помощь будет оценена по достоинству. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...