Dmy*_*iak 7 asp.net testing asp.net-mvc mocking httpcontext
我总是在ASP.NET中以某种方式伪装/模拟/存根HttpContext(在ASP.NET MVC/MonoRail中更容易).
但是我可以看到HttpContext本身可以很容易地构造,字面上只有几行代码.
var tw = new StringWriter();
var workerReq = new SimpleWorkerRequest("/webapp", @"c:\here\there\wwwroot", "page.aspx", tw);
var context = new HtpContext(workerReq);
Run Code Online (Sandbox Code Playgroud)
如果我们将这个代码包装成这样的东西它应该工作正常,我们甚至可以使用它来渲染ASPX:
using(Simulate.HttpContext()) {
HttpContext.Current.BlaBla;
}
Run Code Online (Sandbox Code Playgroud)
所以问题是:
我记得Phill Haack使用Reflection hacks构建HttpContext的帖子.
但它似乎并不需要.
干杯,
德米特里.
这对于进行非常简单的测试很好,但是如何对使用HttpRequest.Files的组件进行单元测试呢?据我所知,没有公共API允许您在SimpleWorkerRequest上指定它.即使您可以找到可以设置HttpFileCollection属性的位置,请注意其构造函数是内部的,因此您甚至无法创建该类型的实例.
HttpRequest.Files是不是一个人在这方面,事实上有可能大大更多的东西,你不能用当前的HttpContext实现比你测试可以测试.这就是抽象真正派上用场的地方.
| 归档时间: |
|
| 查看次数: |
2114 次 |
| 最近记录: |