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

时间:2010-08-25 21:50:55

标签: asp.net mocking wrapper httpcontext

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

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

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

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

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

2 个答案:

答案 0 :(得分:2)

我的公司只为所有http objcets(IHttpRequest,IHttpResponse等)创建接口。

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

然后你可以使用RhinoMocks或其他任何东西轻松测试一切..

答案 1 :(得分:1)

查看moq框架。这是MVC团队使用的模拟框架,许多人(包括我自己)认为它具有最低的进入门槛。还可以查看MvcContrib项目中的模拟助手。