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的方式).

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...