asp.net – 为什么要模拟HttpContext,如果它可以构造?
发布时间:2020-12-16 04:10:40 所属栏目:asp.Net 来源:网络整理
导读:我总是在ASP.NET中伪造/模拟/存储HttpContext(在ASP.NET MVC / MonoRail中更容易). 但是我可以看到HttpContext本身可以很容易地构造,实际上有几行代码. var tw = new StringWriter();var workerReq = new SimpleWorkerRequest("/webapp",@"c:heretherewww
我总是在ASP.NET中伪造/模拟/存储HttpContext(在ASP.NET MVC / MonoRail中更容易).
但是我可以看到HttpContext本身可以很容易地构造,实际上有几行代码. var tw = new StringWriter(); var workerReq = new SimpleWorkerRequest("/webapp",@"c:heretherewwwroot","page.aspx",tw); var context = new HtpContext(workerReq); 如果我们将这个代码包装成这样的东西它应该工作正常,我们甚至可以使用它来渲染ASPX: using(Simulate.HttpContext()) { HttpContext.Current.BlaBla; } 所以问题是: >不应该做的原因. 我记得Phill Haack使用Reflection hacks构建HttpContext的帖子. 干杯, 解决方法
这对于进行非常简单的测试很好,但是如何对使用HttpRequest.Files的组件进行单元测试呢?据我所知,没有公共API允许您在SimpleWorkerRequest上指定它.即使您可以找到可以设置HttpFileCollection属性的位置,请注意其构造函数是内部的,因此您甚至无法创建该类型的实例.
HttpRequest.Files在这方面并不孤单,事实上,使用当前的HttpContext实现可能无法测试的内容远远多于您可以测试的内容.这就是抽象真正派上用场的地方. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.NET MVC2 – 自定义模型绑定器示例
- asp.net – 寻找RESTful API的身份验证/模拟策略
- asp.net core 自定义异常处理中间件
- asp.net – 插入后在实体框架中获取记录ID
- asp.net-mvc – 如何告诉Ninject绑定到它没有引用的实现
- IBatis.Net 老技术新研究
- asp.net – Page_Init vs OnInit
- asp.net – .Net Core 2.0 – 获取AAD访问令牌以与Microsof
- asp.net-mvc – 组合数据注释属性
- asp.net-mvc – TempData keep()vs peek()
推荐文章
站长推荐
- asp.net-mvc – 在ASP.NET MVC中保留非表单模型数
- Asp.net Web Api开发 性能:使用Jil提升Json序列
- C#模拟httpwebrequest请求_向服务器模拟cookie发
- asp.net – Windows Azure VIP Swap,如何处理自定
- asp.net-mvc-3 – 在Razor View模型中添加一个类
- 用于XmlHttpRequest的WebAPI的CORS
- asp.net – 用于gridview分页的PagedDatasource
- 单元测试 – 使用HttpRequestMessage对Azure功能
- 高级ASP.NET主机
- asp.net-mvc – 没有值的asp.net mvc htmlattrib
热点阅读