如何在MVC 6控制器测试中设置用户

时间:2015-07-08 15:34:55

标签: asp.net-mvc asp.net-identity

我对MVC6控制器进行了单元测试,其中控制器具有[AllowAnonymous]属性。但是我的许多控制器没有这个属性,我无法测试这些控制器。此外,一些允许匿名访问的控制器根据用户是经过身份验证还是匿名来返回不同的数据集。

我无法确定如何在测试中设置用户详细信息,并开始认为可能无法实现。我希望事实并非如此。

1 个答案:

答案 0 :(得分:0)

Jerrie Pelser在10月份的博客中发布了这个问题。然而,从那时起,框架已经发生变化,而且几乎已经发生了变化。作品。我确实找到了问题的解决方案并将其发布在他博客的评论中。

http://www.jerriepelser.com/blog/unit-testing-controllers-aspnet5

最后基本上阅读博客和我的评论,然后像这样创建你的控制器。

var controller = new MyController()
{
     ActionContext = new ActionContext
     {
          HttpContext = httpContext
     },
     Url = new UrlHelper(),
     TempData = Mock.Of<ITempDataDictionary>()
};