Visual Studio单元测试中的HttpRuntime

时间:2011-02-17 04:56:29

标签: visual-studio-2008 unit-testing

我可以在单位测试方法中访问HttpRuntime吗?当我每次尝试访问时都显示HttpRuntime在当前上下文中不存在。在我的目标方法中,我想测试访问缓存变量


   HttpRuntime.Cache[key]; 

有可能吗?或者我在这里遗漏了什么?

由于

2 个答案:

答案 0 :(得分:1)

您最好的选择是重构您的目标方法,以便不直接访问HttpRuntime,而是将该信息作为参数传递或让它与包装HttpRuntime的接口进行通信。这样你就可以打破对HttpRuntime的依赖,让事情变得更容易测试。

答案 1 :(得分:1)

您可以使用SimpleWorkerRequest对象在单元测试中创建HttpContext。

TextWriter writer = new StringWriter();
HttpWorkerRequest httpRequest = new SimpleWorkerRequest("virtualDir", "physicalDir", "page", "", writer);
HttpContext.Current = new HttpContext(httpRequest);
HttpContext.Current.Cache[key] = some value..
相关问题