Как вы имитируете коллекцию объектов сеанса с помощью Moq

Используя Moq 3.0.308.2, вот asp-mvc пример настройки контроллера asp.mvc моей учетной записи в моем moq модульном тесте:

    private AccountController GetAccountController ()
    {
      .. setup mocked services..

      var accountController = new AccountController (..mocked services..);

      var controllerContext = new Mock ();
      controllerContext.SetupGet(p => p.HttpContext.Session["test"]).Returns("Hello World");
      controllerContext.SetupGet(p => p.HttpContext.User.Identity.Name).Returns(_testEmail);
      controllerContext.SetupGet(p => p.HttpContext.Request.IsAuthenticated).Returns(true);
      controllerContext.SetupGet(p => p.HttpContext.Response.Cookies).Returns(new HttpCookieCollection ());

      controllerContext.Setup (p => p.HttpContext.Request.Form.Get ("ReturnUrl")).Returns ("sample-return-url");
      controllerContext.Setup (p => p.HttpContext.Request.Params.Get ("q")).Returns ("sample-search-term");

      accountController.ControllerContext = controllerContext.Object;

      return accountController;
    }

затем в методе unit-tests вашего контроллера следующее asp-net-mvc должно вернуть "Hello World"

string test = Session["test"].ToString ();

asp.net-mvc

unit-testing

tdd

moq

2022-08-31T19:03:12+00:00
Вопросы с похожей тематикой, как у вопроса:

Как вы имитируете коллекцию объектов сеанса с помощью Moq