2009-07-17 2 views
0

J'utilise Rhino Mock 3.5 pour .Net Framework 2.0 et lorsque j'exécute ce code, j'obtiens une erreur d'exécution.RhinoMock 3.5 Erreur d'exécution lors de l'exécution .net

Ce code

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); 

C'est l'erreur:

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 fait partie du Framework 3.0, mais je suis en utilisant Framework 2.0 et J'ai référencé la version spécifique de Rhino Mocks 3.5 pour Framework 2.0.

Merci

Répondre

4

HttpContextBase n'existe pas dans framework .Net 2.0. Il a été ajouté dans un fichier .dll appelé System.Web.Abstractions et n'est disponible que si vous avez installé .Net Framework 3.5, ainsi que Service Pack 1 pour .Net Framework 3.5.

Vous devrez cibler .net 3.5 si vous voulez simuler cela. Si vous utilisez un ensemble séparé pour les tests, il n'y a aucune raison pour que vous ne puissiez pas cibler votre assembly de test sur 3.5 et laisser votre application de production seule.

+1

Nous vous remercions de votre réponse. En fait, vous pouvez ajouter une référence à System.Web.Abstractions et l'utiliser dans .Net 2.0; Je l'ai utilisé avec succès. Maintenant que j'écris ces tests, j'obtiens cette erreur, donc je suppose que je devrais cibler .net 3.5 pour les tests puisque j'ai un assemblage séparé. Merci encore –