当前位置:  开发笔记 > 后端 > 正文

你如何在ASP.NET MVC中存根User.Identity.Name?

如何解决《你如何在ASP.NETMVC中存根User.Identity.Name?》经验,为你挑选了1个好方法。

我正在尝试对我的ASP.NET MVC应用程序中的页面进行单元测试,当发布到该页面时,将删除用户的项目.我想限制此页面,以便它只能由所述项目的所有者发布.最初,我想在控制器中快速检查,检查HttpContext.Current.User.Identity.Name是否等于项目的所有者,但我很快意识到单元测试这将很困难.

我应该创建一个提供访问当前登录用户名称的方法的界面吗?



1> Sly..:

您可以使用此代码

Controller CreateControllerAs(string userName) {

  var mock = new Mock();
  mock.SetupGet(p => p.HttpContext.User.Identity.Name).Returns(userName);
  mock.SetupGet(p => p.HttpContext.Request.IsAuthenticated).Returns(true);

  var controller = new SomeController();
  controller.ControllerContext = mock.Object;

  return controller;
}

它使用moq lib

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有