RhinoMock 3.5 Runtime ошибка при запуске на .net - PullRequest
0 голосов
/ 18 июля 2009

Я использую Rhino Mock 3.5 для .Net Framework 2.0, и когда я запускаю этот код, я получаю ошибку во время выполнения.

Это код

IFile fileInterface = MockRepository.GenerateStub<IFile>();<br>
IUrlMapper urlMapper = MockRepository.GenerateStub<IUrlMapper>();

// this is the line causing the run-time error<br>
HttpContextBase mockHttpContext = MockRepository.GenerateMock<HttpContextBase>();

HttpRequestBase mockRequest = MockRepository.GenerateMock<HttpRequestBase>();

RhinoMocksExtensions.Stub<HttpContextBase,HttpRequestBase>(mockHttpContext, delegate(HttpContextBase ctx)
{
                                                               return ctx.Request;
                                                           }
).Return(mockRequest);


RhinoMocksExtensions.Stub(fileInterface, delegate(IFile f)
                 {
                     f.Exists(Arg<string>.Is.Anything);
                 }
).Return(true);


AspxReplacementResolver resolverToTest = new AspxReplacementResolver(mockHttpContext, fileInterface, urlMapper);

Это ошибка:

TestCase 'TestMockingRhinoMock35.TestTestFixtures.Test1'
failed: System.TypeLoadException : Could not load type 'System.Web.RequestNotification' from assembly 'System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'......

System.Web.RequestNotification является частью Framework 3.0, но я использую Framework 2.0, и я ссылался на конкретные Rhino Mocks 3.5 для Framework 2.0 DLL.

Спасибо

1 Ответ

4 голосов
/ 18 июля 2009

HttpContextBase не существует в .Net Framework 2.0. Он был добавлен в .dll с именем System.Web.Abstractions и доступен только в том случае, если вы установили .Net Framework 3.5, , а также Service Pack 1 для .Net Framework 3.5.

Вам нужно нацелиться на .net 3.5, если вы хотите сделать это. Если вы используете отдельную сборку для тестирования, нет никаких причин, по которым вы не могли бы ориентировать свою тестовую сборку на 3.5 и оставить свое производственное приложение в покое.

...