【发布时间】:2009-08-10 15:21:05
【问题描述】:
我正在尝试使用 Rhino Mocks 在 VB.NET 中从 HtmlHelperTest.cs 实现 GetHttpContext 函数,但我得到“未定义类型 'HttpContextBase'。”编译器建议将其更改为 HttpContext,但是当我这样做时,我会收到一个无法模拟密封类的运行时错误。
我的测试项目引用 System.Web 并导入该命名空间。为了让HttpContextBase 类型对我所知道的代码可见,我还需要做些什么吗?
这是代码,但我不知道它与问题的相关性。
Imports NUnit.Framework
Imports Rhino.Mocks
Imports System.Web.Routing
<TestFixture()> _
Public Class XhtmlHelperTest
Public Const AppPathModifier = "/$(SESSION)"
'Various test methods here...'
Private Shared Function GetHttpContext(ByVal appPath As String, _
ByVal requestPath As String, _
ByVal httpMethod As String, _
Optional ByVal protocol As String = "http", _
Optional ByVal port As Integer = -1 _
) As HttpContextBase
Dim mockHttpContext = MockRepository.GenerateMock(Of HttpContextBase)()
If Not String.IsNullOrEmpty(appPath) Then
mockHttpContext.Expect(Function(hc) hc.Request.ApplicationPath).Return(appPath)
End If
If Not String.IsNullOrEmpty(requestPath) Then
mockHttpContext.Expect(Function(hc) hc.Request.AppRelativeCurrentExecutionFilePath).Return(requestPath)
End If
Dim uri As Uri
If port >= 0 Then
uri = New Uri(protocol + "://localhost" + ":" + port)
Else
uri = New Uri(protocol + "://localhost")
End If
mockHttpContext.Expect(Function(hc) hc.Request.Url).Return(uri)
mockHttpContext.Expect(Function(hc) hc.Request.PathInfo).Return("")
If Not String.IsNullOrEmpty(httpMethod) Then
mockHttpContext.Expect(Function(hc) hc.Request.HttpMethod).Return(httpMethod)
End If
mockHttpContext.Expect(Function(hc) hc.Response.ApplyAppPathModifier(Arg(Of String).Is.Anything)).WhenCalled(Function(invocation) AppPathModifier + invocation.Arguments(0))
Return mockHttpContext
End Function
End Class
【问题讨论】:
标签: asp.net-mvc vb.net nunit rhino-mocks