Ich möchte "Einheit" Test eine Methode auf meinem WebAPI-Controller.Unit testet eine WebAPI2-Controller-Methode mit einem Header-Wert
Diese Methode beruht darauf, dass ein Header gesendet wird.
So
HttpContext.Current.Request.Headers["name"]
benötigt einen Wert in der Methode Körper haben.
Was ist der beste Weg, dies zu tun? Ich dachte, ich könnte den ControllerContext setzen, der HttpContext auffüllen würde, aber es funktioniert nicht.
Ich würde es vorziehen, kein Mocking-Framework oder andere Tools von Drittanbietern zu verwenden, da mein Verständnis ist, dass WebAPI2 gut mit diesem Anwendungsfall spielt.
Ich bin glücklich, HttpContext.Current zu setzen, wenn das der beste Weg ist.
Danke! Ich habe versucht, dies zu setzen, aber Request ist null. Ich habe versucht: controller.Request.Headers.Add ("value", "12345"); –
Ich habe eine Probe hinzugefügt. Die Anfrage wird nur zur Ausführungszeit gestellt, also müssen Sie sie zu Testzwecken selbst einrichten. –
Danke, mein Herr. Das ist genau so einfach, wie ich es erwartet habe. Leider habe ich auch erwartet, dass dies HttpContext.Current.Request.Headers auffüllt, aber das tut es nicht. Ist es weg, um dies in den Kontext zu propagieren, so dass mein "Unit" -Test stromabwärts funktioniert. (Ja, es ist eher ein Integrationstest). –