Tag: unit testing

我如何模拟User.Identity.GetUserId()?

我正在尝试对我的代码进行unit testing,其中包括以下行: UserLoginInfo userIdentity = UserManager.GetLogins(User.Identity.GetUserId()).FirstOrDefault(); 因为我无法得到,我只是被困在一点上: User.Identity.GetUserId() 返回一个值。 我在设置控制器时一直在尝试以下方法: var mock = new Mock(); mock.Setup(p => p.HttpContext.User.Identity.GetUserId()).Returns(“string”); 但是它给出了“NotSupportedException未被用户代码处理”的错误。 我也尝试过以下方法: ControllerContext controllerContext = new ControllerContext(); string username = “username”; string userid = Guid.NewGuid().ToString(“N”); //could be a constant List claims = new List{ new Claim(“http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name”, username), new Claim(“http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier”, userid) }; var genericIdentity = new GenericIdentity(“Andrew”); genericIdentity.AddClaims(claims); […]