J'utilise un exemple dans lequel je peux simuler la session. Il est pour une utilisation dans un unittest d'un contrôleur mvc.quelle est la différence entre ControllerContext.HttpContext.Session et HttpContext.Current.Session
Dans le test créer un contrôleur puis-je faire cela:
FakeHttpContext httpctx = new FakeHttpContext(null,null,null,null,mSessionItems);
ControllerContext ctx2 = new ControllerContext(httpctx,new RouteData(), target);
où mSessionItems
est ma session et target
est mon exemple d'un contrôleur
et en fait, quand je suis dans un contrôleur lecture this.ControllerContext.HttpContext.Session
, j'ai une session, génial!
mais .... j'ai également lu la session en dehors du contrôleur, et là j'utilise HttpContext.Current.Session
, et c'est null (ou effectivement, le HttpContext.Current
est nul).
Alors je me demandais, quelle est la différence entre les deux? ControllerContext.HttpContext est du type abstrait HttpContextBase.
Je vais obtenir le HttpContext.Current.Session (que je vérifie pour null bien sûr). Mais dans le scénario de test unitaire, je vais rester coincé. – Michel