我使用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的方式).
原文地址:https://www.jb51.cc/csharp/97699.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。