Tôi đang sử dụng API Web 2. Trong bộ điều khiển api trên web tôi đã sử dụng phương thức GetUserId
để tạo id người dùng bằng cách sử dụng Nhận dạng Asp.net.Cách tạo danh tính người dùng Asp.net khi kiểm tra bộ điều khiển WebApi
Tôi phải viết kiểm tra đơn vị MS cho bộ điều khiển đó. Làm cách nào tôi có thể truy cập id người dùng từ dự án thử nghiệm?
Tôi có mã mẫu được đính kèm bên dưới.
Web API điều khiển
public IHttpActionResult SavePlayerLoc(IEnumerable<int> playerLocations)
{
int userId = RequestContext.Principal.Identity.GetUserId<int>();
bool isSavePlayerLocSaved = sample.SavePlayerLoc(userId, playerLocations);
return Ok(isSavePlayerLocSaved);
}
Web API điều khiển thử nghiệm lớp
[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);
}
tôi đã cố gắng sử dụng phương pháp mô hình như trên. Nhưng nó không hoạt động. Làm thế nào để tạo ra nhận dạng người dùng Asp.net khi tôi gọi từ phương pháp kiểm tra để điều khiển?