2010-01-20 6 views
4

J'essaie ce qui suit, mais j'obtiens: La référence d'objet n'est pas définie sur une instance d'un objet.Comment puis-je simuler Server.HtmlEncode

HttpContextBase mockContext = MockRepository.GenerateMock<HttpContextBase>(); 

mockContext.Expect(c => c.Server.HtmlEncode("")).IgnoreArguments().Return(""); 
mockContext.Expect(c => c.Server.HtmlDecode("")).Return(""); 

controller.ControllerContext = 
    new ControllerContext(mockContext, new RouteData(), controller); 

Matin,

Merci. Cela a suffi à me diriger dans la bonne direction prévue ici:

var mockContext = MockRepository.GenerateMock<HttpContextBase>();  
var mockServer = MockRepository.GenerateMock<HttpServerUtilityBase>(); 

mockServer.Expect(s => s.HtmlEncode("")) 
    .IgnoreArguments() 
    .Repeat.AtLeastOnce() 
    .Return(""); 

mockContext.Expect(c => c.Server) 
    .IgnoreArguments() 
    .Repeat.AtLeastOnce() 
    .Return(mockServer); 

controller.ControllerContext = 
    new ControllerContext(mockContext, new RouteData(), controller); 

Répondre

2

conjecture pure ici:

var mockServer = MockRepository.GenerateMock<HttpServerUtilityBase>(); 
mockServer.Expect(x => x.HtmlEncode("")).IgnoreArguments().Return("");