【问题标题】:Mock HttpContext.Request.Cookies in Asp.Net Web Forms在 Asp.Net Web 窗体中模拟 HttpContext.Request.Cookies
【发布时间】:2014-02-07 20:50:46
【问题描述】:

我正在寻找在 Asp.Net Web 窗体中模拟 HttpContext.Request.Cookies 的最佳方法。

以下是我的代码:

public void Method1()
{
    var _cookie = this.Context.Request.Cookies["PersonID"];
    if (_cookie != null)
    {
        //some code.........
    }
}

下面是我的测试方法代码的一部分:

using (var httpSimulator = new HttpSimulator("/", @"c:\inetpub\").SimulateRequest(new Uri(request), form))
{
 //some code
  var aObject= new ClassA(HttpContext.Current);
  aObject.Method1();

}

我不确定我们是否可以模拟 HttpRequest 的 cookie。 请帮忙。

提前致谢,

谢谢, 坎

【问题讨论】:

    标签: cookies mocking httprequest httpcontext


    【解决方案1】:

    您最快的解决方案是使用包装类包装 HttpContext。但是,只有当方法通过其接口返回标量值或对象时,您才能摆脱这种情况。

    所以如果它返回一个不可模拟的对象,你就完蛋了。

    根据我的经验,实现高比例可测试代码的最佳方法是对您的应用进行分层。在这种情况下,您可能希望对 HttpContext 的所有用法进行分层。这意味着在 UI 层(代码隐藏或视图)上使用 HttpContext。您将不得不牺牲这些上层的可测试性(可模拟性)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多