c# – 在单元测试中使用httpcontext

前端之家收集整理的这篇文章主要介绍了c# – 在单元测试中使用httpcontext前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用C#4.0,我需要单元测试一个服务.服务内的函数返回一个类似于我称为预期的变量的路径,这是我希望得到的路径.但是当我运行这个测试我得到HttpContext.Current为NULL的错误.我可以做些什么来解决这个问题,以便测试可以运行?
[TestMethod]
public void GetPathTest()
{
   var expected = System.IO.Path.GetFullPath(HttpContext.Current.Server.MapPath("~/Certificates/"));
   var path = _mockService.Setup(o => o.GetPath()).Returns(expected);
}

解决方法

目前我找不到我以前使用的HttpContext的完整包装,但是目前我们只是创建一个空的请求的上下文,从那里开始,就像这样:
SimpleWorkerRequest request = new SimpleWorkerRequest("","",null,new StringWriter());
HttpContext context = new HttpContext(request);

然后在单元测试初始化​​或单元测试本身(在创建预期之前),您可以如下设置当前的HttpContext:

HttpContext.Current = context;

然后根据需要简单地将伪造的上下文和可能的假的会话状态等.

(编辑:这是所有在VS2008,框架3.5的方式).

猜你在找的C#相关文章