我可以在单位测试方法中访问HttpRuntime
吗?当我每次尝试访问时都显示HttpRuntime在当前上下文中不存在。在我的目标方法中,我想测试访问缓存变量
HttpRuntime.Cache[key];
有可能吗?或者我在这里遗漏了什么?
由于
答案 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..