Сохранение значения сеанса в 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 выдает ошибку.

Заранее спасибо, Джитендра

0 ответов

Другие вопросы по тегам