Тип HttpContextBase не найден в VB.NET (при использовании Rhino Mocks с ASP.NET MVC) - PullRequest
0 голосов
/ 10 августа 2009

Я пытаюсь реализовать функцию GetHttpContext из HtmlHelperTest.cs в VB.NET, используя Rhino Mocks, но я получаю "Тип '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

Ответы [ 2 ]

5 голосов
/ 10 августа 2009

Вам необходимо добавить ссылку на System.Web.Abstractions.

1 голос
/ 10 августа 2009

Включили ли вы сборку System.Web.Abstractions и импорт System.Web?

...