J'ai le remplacement ci-dessous pour faire quelques choses avec des cookies en utilisant l'objet FormsIdentity. Mais quand j'instancie un contrôleur sur mon test d'unité, cette méthode n'est pas déclenchée. Des idees pour faire cela?Comment déclencher la méthode Initialize en essayant de tester un appareil?
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
// Grab the user's login information from FormsAuth
_userState = new UserState();
if (this.User.Identity != null && this.User.Identity is FormsIdentity)
this._userState.FromString(((FormsIdentity)this.User.Identity).Ticket.UserData);
// have to explicitly add this so Master can see untyped value
this.UserState = _userState;
//this.ViewData["ErrorDisplay"] = this.ErrorDisplay;
// custom views should also add these as properties
}
Merci, Sam. J'ai été en mesure de déclencher la méthode Initialize, mais toujours obtenir des erreurs, moquant httpContext est beaucoup plus difficile que je pensais. – Geo
HttpContext est l'anti-christ de testabilité - j'essaie d'éviter autant que possible, et je suis surpris qu'Initialize() soit aussi faiblement testable. Peut-être pourriez-vous envisager d'utiliser un classeur de modèle personnalisé ou une injection de dépendance de propriété au lieu d'utiliser Initialize() du tout? – Sam