5
我正在使用Web API 2.在web api控制器中,我使用GetUserId
方法使用Asp.net标识生成用户标识。如何在测试WebApi控制器时生成Asp.net用户标识
我必须为该控制器编写MS单元测试。我如何从测试项目访问用户ID?
我附上下面的示例代码。
网页API控制器
public IHttpActionResult SavePlayerLoc(IEnumerable<int> playerLocations)
{
int userId = RequestContext.Principal.Identity.GetUserId<int>();
bool isSavePlayerLocSaved = sample.SavePlayerLoc(userId, playerLocations);
return Ok(isSavePlayerLocSaved);
}
网页API控制器测试类
[TestMethod()]
public void SavePlayerLocTests()
{
var context = new Mock<HttpContextBase>();
var mockIdentity = new Mock<IIdentity>();
context.SetupGet(x => x.User.Identity).Returns(mockIdentity.Object);
mockIdentity.Setup(x => x.Name).Returns("admin");
var controller = new TestApiController();
var actionResult = controller.SavePlayerLoc(GetLocationList());
var response = actionResult as OkNegotiatedContentResult<IEnumerable<bool>>;
Assert.IsNotNull(response);
}
我尝试使用模拟法等的上方。但它不起作用。当我从测试方法调用控制器时,如何生成Asp.net用户标识?