什么是HttpContext最完整的模拟框架

kbr*_*ton 9 asp.net mocking httpcontext wrapper

我正在寻找尽可能全面的模拟替换和HttpContext我的应用程序中的ASP.NET包装器.全面的模拟替换可能会大大提高ASP.NET Web应用程序的可测试性,而无需将每个应用程序迁移到更易测试的框架(如MVC).

我最感兴趣的是在HttpContext包装器和模拟框架中看到的一些功能包括:

  • 序列化会话存储(例如.Session).
  • 序列化应用程序范围的存储(例如.Application).
  • 按请求项目存储(例如.Items).
  • HttpRequest数据,例如引用,请求Uri,服务器变量,发布数据等.
  • HttpResponse数据,例如状态代码和内容.
  • 本地文件解析(例如Server.MapPath)
  • VirtualPathUtility用于应用程序相对URL路径解析,它依赖于ASP.NET运行时.
  • .User用于验证身份验证/授权规则的标识和主体(例如).
  • AllErrors用于测试HttpModules和中的错误解决方案的集合Global.asax.

我考虑过编写自己的界面,包装和模拟; 但是,我相信这一点必须已经存在.各种模拟框架对于第一次吸收来说有点压倒性.

HttpContext你会推荐什么是最全面的包装和模拟?

Mic*_*dry 2

我的公司在为所有 http 对象(IHttpRequest、IHttpResponse 等)创建接口方面做得很好。

它有点重复,但基本上需要接口上的所有方法和属性,然后为每个方法和属性创建一个具体类型,该类型将真实类型作为构造函数参数,并将所有方法和属性传递给真实对象。

然后你可以使用 RhinoMocks 或其他工具轻松测试一切。