2010-01-20 51 views
4

我想下面,但我越來越:對象引用未設置爲對象的實例。我怎樣才能模擬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); 

晨報,

感謝。這足以點我在這裏提供的正確方向:

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

回答

2

純猜測這裏:

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