Vorrei provare a "unità" un metodo sul mio contoller WebAPI.Unità che esegue il test di un metodo di controllo WebAPI2 con un valore di intestazione
Questo metodo si basa su un'intestazione inviata con esso.
Così
HttpContext.Current.Request.Headers["name"]
ha bisogno di avere un valore nel corpo del metodo.
Qual è il modo migliore per farlo? Ho pensato che sarei stato in grado di impostare il ControllerContext che avrebbe popolato HttpContext, ma non può farlo funzionare.
Preferirei non utilizzare un framework di simulazione o altri strumenti di terze parti, poiché la mia comprensione è che WebAPI2 funziona bene con questo caso d'uso.
Sono felice di impostare HttpContext.Current se questo è il modo migliore.
Grazie! Ho provato a impostarlo, ma Request è nullo. Ho provato: controller.Request.Headers.Add ("valore", "12345"); –
Ho aggiunto un campione. La richiesta viene impostata solo al momento dell'esecuzione, quindi per scopi di test è necessario configurarlo autonomamente. –
Grazie signore. Questo è esattamente quanto mi aspettavo che fosse. Sfortunatamente mi aspettavo anche che questo popolasse HttpContext.Current.Request.Headers, ma non è così. C'è via per farlo propagare nel contesto in modo che il mio test "unità" funzioni a valle. (sì, è più di un test di integrazione). –