2010-01-20 90 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("");