Mvc Controller 单元测试 Mock User.Identity.Name

时间:2023-03-09 00:38:40
Mvc Controller 单元测试 Mock User.Identity.Name

被测试的Action 包含 User.Identity.Name 代码,在写测试代码需要Mock ControllerContext对象 代码如下:

          var mock = new Mock<ControllerContext>();

             mock.SetupGet(p => p.HttpContext.User.Identity.Name).Returns(userName);

             mock.SetupGet(p => p.HttpContext.Request.IsAuthenticated).Returns(true);

             var controller = new DealerStructureController(dsService, null);

             controller.ControllerContext = mock.Object;