在VB.NET中找不到HttpContextBase类型(使用带有ASP.NET MVC的Rhino Mocks)

Cod*_*nis 0 vb.net asp.net-mvc nunit rhino-mocks

我正在尝试使用Rhino Mocks在VB.NET中实现HtmlHelperTest.cs中的GetHttpContext函数,但是我没有定义"Type'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
Run Code Online (Sandbox Code Playgroud)

tva*_*son 5

您需要添加对System.Web.Abstractions的引用.