Wie übermittle ich das HttpServletRequest-Objekt an den Testfall? [Duplikat]

7

Jetzt schreibe ich den Testfall meiner Klasse. Ich möchte den HttpServletRequest-Objektparameter an meine Testfallmethode übergeben, um zu überprüfen, ob die Methode funktioniert oder nicht. Also gib mir irgendeinen Vorschlag dazu.

%Vor%     
Kallar_Mannargudi 30.07.2012, 12:30
quelle

5 Antworten

4

HttpServletRequest ist eine Schnittstelle. In der Vergangenheit habe ich einfach eine Klasse (z. B. TestHttpServletRequest ) erstellt, die für jede Methode in HttpServletRequest einen leeren Methodenhauptteil hatte, außer für die, die ich tatsächlich benötigte. Bei den meisten Methoden habe ich eine Instanzvariable zurückgegeben und einen Setter für diese Instanzvariable eingefügt, sodass der Testfall definieren kann, was zurückgegeben werden soll. HttpServletRequest hat viele Methoden, aber die meisten IDEs (ich benutze Eclipse) kann die Methode Stubs generieren.

Das Problem mit HttpServletRequestWrapper ist, dass es immer noch ein weiteres HttpServletRequest benötigt, das in seinen Konstruktor übergeben wird, um als Standardverhalten für jede Methode zu dienen. Die Weitergabe von null führt zu einem NullPointerException .

    
John Girata 30.07.2012, 12:38
quelle
23

Spring bietet eine Klasse namens MockHttpServletRequest , mit dem Code getestet werden kann, der eine HttpServletRequest benötigt.

%Vor%     
Stefan Birkner 31.07.2012 01:06
quelle
10

Sie sollten das Anforderungsobjekt mithilfe einer Mocking-Bibliothek wie Ссылка

ausspionieren %Vor%     
Chii 30.07.2012 12:57
quelle
0

Aktualisiert im Februar 2018: OpenBrace Limited wurde geschlossen und sein ObMimic-Produkt wird nicht mehr unterstützt.

Sie können auch die ObMimic Bibliothek des Servlet-API-Test-Doubles verwenden:

%Vor%

Um die Anfrage zu konfigurieren, verfügt das HttpServletRequestMimic über eine getMimicState () -Methode, die einen HttpServletRequestState zurückgibt, über den alle relevanten Details der Anfrage konfiguriert werden können (und über den Sie alle zugehörigen ServletContext, HttpSession usw. aufrufen und bei Bedarf konfigurieren können) ). Die Dokumentation für den HttpServletRequestState enthält eine Zusammenfassung seiner Eigenschaften und Methoden wie ausführlich Javadoc .

Beachten Sie Folgendes:

  • ObMimic stellt auch ähnliche "mimic" -Klassen für HttpServletResponse, ServletContext, HttpSession, ServletConfig usw. zur Verfügung.

  • Eine kostenlose "Community Edition" von ObMimic ist auf der Website download Seite.

  • Die einzige Bibliothek, die Sie Ihrem Projekt hinzufügen müssen, ist Obmimics /lib/obmimic.jar (vorausgesetzt, die Servlet-API selbst ist bereits vorhanden).

  • Die ObMimic Website bietet vollständige Dokumentation, einschließlich einer Erste Schritte , ein Satz von How To führt mit Beispielcode detaillierte Javadoc usw.

Mike Kaufman 13.11.2013 14:21
quelle
-1

Unter Verwendung der von tomcat angegebenen API können Sie das HttpServletRequest-Objekt

abrufen %Vor%

Dadurch wird die letzte Anforderung, die vom aktuellen Thread an ein Servlet zur Wartung übergeben wurde, abgerufen.

Dies funktioniert nur im Strict-Servlet-Compliance-Modus von Tomcats. Um es zu aktivieren Fügen Sie folgenden JVM-Parameter hinzu:

%Vor%     
swapy 30.07.2012 12:39
quelle

Tags und Links