Maquette HttpContext pour les tests unitaires d'un .NET core, MVC contrôleur?

J'ai une fonction dans un contrôleur que je suis de tests unitaires qui s'attend à valeurs dans l'en-tête de la requête http. Je ne peux pas initialiser le HttpContext car il est en lecture seule.

Mon contrôleur de fonction s'attend à une requête http en-tête de la valeur pour "device id"

[TestMethod]
public void TestValuesController()
{
    ValuesController controller = new ValuesController();

    //not valid controller.HttpContext is readonly
    //controller.HttpContext = new DefaultHttpContext(); 

    var result = controller.Get();
    Assert.AreEqual(result.Count(), 2);
}

Est-il une simple façon de le faire sans l'aide d'un tiers de la bibliothèque?

Ne pas utiliser HttpContext? Le point de l'ensemble de l'aide de contrôleurs est que les données viennent à travers les paramètres du régulateur. Si votre contrôleur utilise le HttpContext de lire les données comme si c'était un WebForms page, vous avez un problème.
La valeur de l'en-tête est un élément d'information indiquant quel appareil mobile, l'appel vient. C'est necassary pour récupérer les données correctes. L'ID de l'appareil est dans l'en-tête parce que l'ID est nécessaire pour l'authentification, qui est géré par une action personnalisée filtre. Je pourrais peut passer l'ID de l'appareil comme un paramètre de route, mais il serait redondant
Vérifier FromHeaderAttribute mais aussi vérifier les doublons. HttpContext est injectable dans la configuration de maintenant
Je vous suggère de modifier une question à spécifier exactement ce que vous voulez (l'accès aux champs d'en-tête pour identifier les appareils mobiles). L'ASP.NET la documentation semble être en passant par un .... la "transition" de la période pour le mettre gentiment, avec de la documentation les pages manquantes. Vérifier cette quasi identique en question que demande comment acheminer les appareils mobiles
J'ai trouvé ma réponse, je vais poster une réponse ici, je pense que cela sera plus clair ce que je cherche

OriginalL'auteur James Wierzba | 2016-12-30