asp.net - HttpContext最全的mock框架是什么

标签 asp.net mocking wrapper httpcontext

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

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

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

  • 我考虑编写自己的接口(interface)、包装器和模拟;但是,我相信这样的肯定已经存在。对于初学者来说,各种各样的模拟框架有点难以接受。

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

    最佳答案

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

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

    然后,您可以使用 RhinoMocks 或其他工具轻松测试所有内容。

    关于asp.net - HttpContext最全的mock框架是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3570513/

    相关文章:

    java - 有意义的容器元素示例

    c# - 使用 InProc session 管理的并发 ASP.NET 请求

    css - 当我使用转发器时,Bootstrap 扰乱了我的表格样式

    c# - 如果 .NET 工作进程崩溃,其他用户会怎样?

    当不在方法签名中时,Spring MockMVC 注入(inject) mockHttpServletRequest

    c# - 如何在没有 ControllerContext 的情况下从 IIdentity 模拟 GetUserId 和 IsAuthenticated

    asp.net - asp.net模板

    grails - grails 集成测试中的模拟方法可以转移到其他测试中

    python - 试图理解 Python 包装器

    Java Service Wrapper环境变量引用问题