wie zum Hohn ein servletContext statt Servlet oder HttpServletRequest?
Habe ich ein eigenständiges Projekt für das schreiben von Testfällen; das problem ist, ich kann nicht verspotten HttpServletRequest
, einfach weil in meinem servlet-Aufrufe wie getServletContext()
als Testfälle ausgeführt werden, die von außen servlet-container. Es wird immer wieder eine Fehlermeldung besagt, dass kein Zusammenhang gefunden". Dies ist nur eine Abhängigkeit mit der servlet-container; es können Hunderte sein. Zum Beispiel initialContext.lookup()
hängt auch davon ab, ein container.
Wie kann ich mit Mockito zum schreiben einer test-case in diesem Szenario? Bitte Fragen Sie nicht nach einer Fehlermeldung; es ist mehr ein logisches problem als die technische.
Suchen im internet nach tutorials macht mich Frage mich, ob ich Tue etwas ernsthaft falsch. Niemand scheint zu haben festgestellt, dieses problem vor... Wie können Sie mock HttpServletRequest
ohne jemals getServletContext()
genannt im servlet? Ich meine, ernsthaft, wie selten kann das sein?
- auch wenn Sie Punkt mich in richtige Richtung, es wäre genug.
- Wenn Sie Frühjahr Sie alle bereit haben ein Klasse MockHttpServletRequest docs.Frühling.io/spring/docs/current/javadoc-api/org/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie einen servlet-Implementierung verwendet, die die
ServletContext
z.B.in diesem Fall haben Sie 2 Möglichkeiten zu testen, die
doGet
MethodeVerwenden powermock ist partitial Spott nur verspotten die
getServletContext
Methode.oder eine einfachere Möglichkeit ist, einfach überschreiben
getServletContext
Methode. In diesem Fall brauchen Sie nicht, powermock. Können Sie tun es einfach mit easymock. z.B.In diesem Fall können Sie entweder ein
InitialContext
mock und verwenden Sie diese.Wenn Ihr code erstellt eine neue
InitialContext
z.B.können Sie einfach entpacken Sie die
InitialContext
Instanziierung auf eine geschützte Methode, die Sie überschreiben können, die in Ihren tests wie ich oben zeigte, mit derServletContext
Wenn Sie nicht wollen oder können Sie nicht ändern Sie den code in dieser Weise, dann können Sie
Powermock
zu der Konstruktor abfangen.BEARBEITEN