代码之家  ›  专栏  ›  技术社区  ›  Jason Watts

如何模拟server.htmlencode

  •  4
  • Jason Watts  · 技术社区  · 15 年前

    我正在尝试以下操作,但我正在获取:未将对象引用设置为对象的实例。

     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);
    
    1 回复  |  直到 14 年前
        1
  •  2
  •   Martin    15 年前

    纯粹的猜测:

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