相关疑难解决方法(0)

如何在Asp.Net MVC 4中模拟HttpContext.User.Identity.Name

我在控制器中有代码消耗 HttpContext

public ActionResult Index()
{

   var currentUser=HttpContext.User.Identity.Name;
   ......

}
Run Code Online (Sandbox Code Playgroud)

尝试使用像这样的NUnit编写测试时

[Test]
public void CanDisplayRequest()
{
    //Act
    var result=  (ViewResult)_requestController.Index();

    //Assert
    Assert.IsInstanceOf<OrderRequest>(resut.Model);
}
Run Code Online (Sandbox Code Playgroud)

测试将失败,因为它无法找到 HttpContext

那么我怎么能嘲笑 HttpContext.Current.User.Identity.Name

我正在使用Moq进行模拟

c# asp.net-mvc unit-testing

25
推荐指数
2
解决办法
2万
查看次数

HttpSelfHostServer和HttpContext.Current

我正在开发一个自托管的ASP.NET web api-application.一切正常,但现在我正在努力HttpContext:

我需要从客户端保存会话信息.但HttpContext.Current总是空的.所以很明显我HttpSelfHostServer不使用静态HttpContext-Class.

我不明白的是:为什么......?而且我无法想办法既不告诉也HtttpSelfHostServer不能HttpSelfHostConfiguration合作HttpContext.

这是我正在做的事情:

  1. 创建一个 HttpSelfHostConfiguration

    • 1.1添加Service-Resolvers&Routes
    • 1.2添加自定义 UserNamePassword-Validator
  2. 使用config创建新的HttpSelfHostServer实例

    • 2.1 server.OpenAsync().Wait()

任何帮助我如何告诉我的服务器工作HttpContext.Current非常感谢!干杯!

c# self-hosting httpcontext asp.net-web-api

18
推荐指数
2
解决办法
1万
查看次数