Сейчас я пытаюсь проверить переменные сеанса. Например я установил:
Session["test"] = "test";
Тогда:
if (blah) { Session["test"] = "foo"; }
else if (testing) { Session["test"] = "foo2"; }
Я бы хотел иметь возможность запускать тесты, чтобы в зависимости от изложенных условий я мог видеть, что переменная Session изменилась соответствующим образом. Я попытался использовать Moq, и я могу создать Mock Session, а затем определить переменную для возврата чего-то конкретного:
controllerContext.Setup(x => x.HttpContext.Session["test"]).Returns("test");
Это не изменится при прохождении теста.
Это кажется еще более сложным, если я строго печатаю переменные с помощью оболочки Session, поскольку пытаюсь передать фиктивный сеанс и контекст между контроллерами.
Я прочитал немного о FakeContext и Fake Sessions, в отличие от Mock. Я также немного слышал об использовании делегатов. На самом деле я просто пытаюсь эмулировать то, что происходит, когда код фактически выполняется, и убедиться, что конечный результат - это то, что я ожидаю, и это часто зависит от моих переменных Session. Каков наилучший подход к тестированию их модификации, правильно делается?