У меня возникла проблема при написании модульного теста для метода, который принимает параметр 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? Любая помощь будет оценена по достоинству. Спасибо