Сохранение значения сеанса в Xunit .net core 3.1
Я пишу пример модульного теста для одного метода, который содержит данные сеанса и временные данные. В моем сценарии я отлаживаю код ниже
[Fact]
public async Task OnGet_AssosiateUserNotFoundWithGivenId()
{
MockParamsForVerifyUserIdentityModelTest(out var mockUserManager, out var mockEventLogClient, out var mockPageMessageManager,
out var mockLogger, out var mockGAClient, out var mockEmailSender,
out var mockUserService, out var mockConfiguration, out var pageContext);
mockUserManager.Setup(m => m.FindByIdAsync(It.IsAny<string>())).ReturnsAsync(new ApplicationUser());
var pageModel = new VerifyUserIdentityModel(null, null, null, null, null, null)
{
PageContext = pageContext
};
pageModel.ModelState.AddModelError("error", "some error");
var result = await pageModel.OnGetAsync("abc");
Assert.IsType<PageResult>(result);
}
и когда он переходит к фактическому методу OnGet в PageModel и пытается установить значение в Tempdata, он выдает ошибку, как показано ниже
System.NullReferenceException : Object reference not set to an instance of an object.
В моем действии я написал ниже код
if (string.IsNullOrEmpty(id))
{
id = TempData.Peek("UserId").ToString();
}
else
{
TempData["UserId"] = id;
}
var user = await _userManager.FindByIdAsync(id);
if (user == null)
{
return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
}
if (HttpContext.Session.GetInt32("hitcount") == null)
{
currentHitCount = 1;
HttpContext.Session.SetInt32("hitcount", currentHitCount);
}
Пожалуйста, помогите мне в правильной работе, например, как я могу установить значение сеанса из тестового примера и почему tempdata выдает ошибку.
Заранее спасибо, Джитендра