Rob*_*Rob 13 c# unit-testing httpcontext c#-4.0
我正在使用C#4.0,我需要对服务进行单元测试.服务中的函数返回一个类似于我预期的变量i的路径,这是我期望回来的路径.但是,当我运行此测试时,我得到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);
}
Run Code Online (Sandbox Code Playgroud)
Ant*_*ton 17
目前我找不到我之前使用过的HttpContext的完整包装器,但目前我们只是为空请求创建一个上下文并从那里开始,如下所示:
SimpleWorkerRequest request = new SimpleWorkerRequest("","","", null, new StringWriter());
HttpContext context = new HttpContext(request);
Run Code Online (Sandbox Code Playgroud)
然后在单元测试初始化或单元测试本身(在创建预期之前),您可以设置当前的HttpContext,如下所示:
HttpContext.Current = context;
Run Code Online (Sandbox Code Playgroud)
然后根据需要简单地充实假上下文和可能的假会话状态等.
(编辑:这一切都在VS2008中,顺便说一下框架3.5).
| 归档时间: |
|
| 查看次数: |
13280 次 |
| 最近记录: |