我正在尝试对我的ASP.NET MVC应用程序中的页面进行单元测试,当发布到该页面时,将删除用户的项目.我想限制此页面,以便它只能由所述项目的所有者发布.最初,我想在控制器中快速检查,检查HttpContext.Current.User.Identity.Name是否等于项目的所有者,但我很快意识到单元测试这将很困难.
我应该创建一个提供访问当前登录用户名称的方法的界面吗?
您可以使用此代码
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