I added a method to my controllers to get the user-id from the JWT token in the HttpContext
. In my unit tests the HttpContext
is null, so I get an exception.
How can I solve the problem? Is there a way to moq the HttpContext
?
Here is the method to get the user in my base controller
protected string GetUserId()
{
if (HttpContext.User.Identity is ClaimsIdentity identity)
{
IEnumerable<Claim> claims = identity.Claims;
return claims.ToList()[0].Value;
}
return "";
}
One of my tests look like this
[Theory]
[MemberData(nameof(TestCreateUsergroupItemData))]
public async Task TestPostUsergroupItem(Usergroup usergroup)
{
// Arrange
UsergroupController controller = new UsergroupController(context, mapper);
// Act
var controllerResult = await controller.Post(usergroup).ConfigureAwait(false);
// Assert
//....
}
HttpContext
.IHttpContextAccessor
was meant to be used outside of a controller. – Unseen