Comment puis-je faire un test de l'unité à tester une méthode qui vérifie les en-têtes de requête?

Je suis très, très nouveau pour les tests unitaires et suis en train d'écrire un test pour une jolie méthode simple:

public class myClass : RequireHttpsAttribute
{
    public override void OnAuthorization(AuthoizationContext filterContext)
    {
        var request = filterContext.HttpContext.Request;
        var header = Convert.ToBoolean(request.Headers["Special-Header-Name"]);

        if (!(header || request.IsSecureConnection))
        {
            HandleNonHttpsRequest(filterContext);
        }
    }
}

Cette méthode, qui hérite de la RequireHttpsAttribute, vérifie si un en-tête est présent à partir d'une page, si elle est manquante ou fausse, et la page n'est pas sécurisée, puis il va appeler HandleNonHttpsRequest, sinon il ne fait rien.

Nous utilisons Moq et Nunit pour les tests. J'ai trouvé quelques ressources pour aider à construire un fakeHttpContext Moq, mais honnêtement, je ne sais pas comment faire, ni où aller dans mes tests unitaires pour s'assurer que les faux HttpContexts sont ou ne sont pas la cause de la HandleNonHttpsRequest méthode à appeler.

J'ai vraiment apprécier toutes les lignes directrices de cette question.

OriginalL'auteur Dredj | 2012-02-13