ich spöttisch eine HttpServletRequest, in Servlet Aufruf gibt es neue Werte in Anforderung, da mit derselben Anfrage wir dispaching Anfrage zu einigen Jsp so Anfrage Objekt wird als Eingabe-Objekt zu Servlet als verwendet gut als Ausgang für nächste Seite.Wie man HttpServletRequest mit Mockito
verspottete ich alle Eingabeparameter, sondern für alle request.setAttribute(), wird mein Code nichts zu tun, da es eine verspottete Klasse ist, sagen, wenn ich
request.setAttribute(a,"10")
System.out.println("a = " + request.getAttribute("a"));
habe ich null bekommen Weil ich nicht gegeben haben jedes Verhalten für Request.getAttribute ("a"), und ich kann nicht, es ist meine Antwort für die nächste Seite, so dass erklären, ich brauche 2 Verhalten mein Anfrageobjekt so teilweise verspotten, und ich bin nicht in der Lage zu spionieren oder zu tun, teilweise verspotten darauf bis jetzt. irgendwelche Ideen?
Code:
//Testcase
Myservlet.java
public void doPost(request,response)
{
String a = request.getAttribute("a");
String b = request.getAttribute("b");
int sum = Integer.parseInt(a) + Integer.parseInt(b);
request.setAttribute("sum",sum);
//well in this example i can use sum what i calculated but in real senario i can't , i have to use request.getAttribute("sum")
insertSumIntoDB(request.getAttribute("sum"));
}
}
//testMyservlet.java
@test
public void testServlet()
{
HttpServletRequest request = mock(HttpServletRequest.class);
HttpServletResponse response = mock(HttpServletResponse.class);
when(request.getAttribute(a)).thenReturn("10");
when(request.getAttribute(b)).thenReturn("20");
new Myservlet(request,response);
}
Können Sie Ihre spöttische Versuch zeigen? – Mureinik
Ich habe den Beitrag wieder geändert. siehe insertSumIntoDB (request.getAttribute ("sum")) Dies ist tatsächlich insertSumminDb (null), weil ich kein Verhalten für request.getAttribute ("sum") angegeben habe; – Vivek