Как смоделировать сеанс HttpContext в ядре asp.net 2.1 - PullRequest
0 голосов
/ 28 сентября 2018

Controller.cs

public async Task<IActionResult> BookingRequest(int cid)
{
    string[] requestParams = Request.QueryString.ToString().Split("&");
    BookingVM objSessionBookingVM = new BookingVM();
    var value = HttpContext.Session.GetString("SessionBookingVM");
    if(value!=null)
    {
        //some logic
    }
}

XunitTest.cs

[Fact]
public async Task<IActionResult> BookingRequestTest_ReturnsViewWithSlots()
{
    // Act
    _controller.ControllerContext = new ControllerContext();
    _controller.ControllerContext.HttpContext = new DefaultHttpContext();
    _controller.ControllerContext.HttpContext.Request.Headers["device-id"] = "20317";
    _controller.ControllerContext.HttpContext.Request.QueryString = new QueryString("?cid=11&culture=no");

    var result = await _controller.BookingRequest(mockId);

    // Assert
    var viewResult = Assert.IsType<ViewResult>(result);
    Assert.IsType<BookingVM>(viewResult.ViewData.Model);
    return result;
}

Когда я запускаю тест, я получаюисключение в строке ниже

var value = HttpContext.Session.GetString("SessionBookingVM");

Ошибка говорит о том, что сеанс не был установлен.Я много пробовал, но ничего не работает.Кто-нибудь может мне помочь это исправить?

...