I'm using Rhino Mocks to generate a Mock object. I have the following unit test
<TestClass()> Public Class VariousTests
Dim mocks As New MockRepository()
Dim _mockContext = mocks.PartialMock(Of HttpContextBase)()
Dim _mockRequest = mocks.PartialMock(Of HttpRequestBase)()
<TestMethod()> Public Sub btnSubmitPage1_ClickTest()
Dim uri As New Uri("http://mypcname.local")
SetupResult.For(_mockContext.Request).Return(_mockRequest)
SetupResult.For(_mockContext.Request.Url).Return(uri)
SetupResult.For(_mockContext.Request.Url.AbsoluteUri).Return(uri) 'Error happens here
HttpContextFactory.SetCurrentContext(_mockContext)
'...
End Sub
End Class
I get an error on the indicated line:
Additional information: Previous method 'HttpContextBase.get_Request();' requires a return value or an exception to throw.
C# or VB.NET answers are acceptable. How can I get past this error?
I re-wrote the test in C# and it worked. What I have now is a little different from the above. But the difference is small overall. It works now.
[TestClass]
public class VertrueSignupViewTests
{
private SplContextProvider _splProvider = new SplContextProvider();
private IVertrueSignupView _form = MockRepository.GenerateMock<IVertrueSignupView>();
private IFeatureToggle _toggle = MockRepository.GenerateMock<IFeatureToggle>();
HttpContextBase mockHttpContext = MockRepository.GenerateMock<HttpContextBase>();
HttpRequestBase mockRequest = MockRepository.GenerateMock<HttpRequestBase>();
HttpResponseBase mockResponse = MockRepository.GenerateMock<HttpResponseBase>();
HttpSessionStateBase httpSessionState = MockRepository.GenerateMock<HttpSessionStateBase>();
[TestMethod]
public void ButtonSubmitTest()
{
mockHttpContext.Stub(x => x.Request).Return(mockRequest);
mockHttpContext.Stub(x => x.Session).Return(httpSessionState);
mockHttpContext.Stub(x => x.Response).Return(mockResponse);
_toggle.Stub(t => t.IsOn()).Return(true);
var uri =
new Uri(
"http://mypc.local/");
mockRequest.Stub(u => u.Url).Return(uri);
mockRequest.Stub(u => u.QueryString)
.Return(col);
HttpContextFactory.SetCurrentContext(mockHttpContext);
//...
}