Voglio testare il mio servlet usando mockito. Voglio anche sapere qual è l'output del server. Quindi, se il servlet scrive qualcosa in questo modo:Mockito e HttpServletResponse - scrittura dell'output su file di testo
HttpServletResponse.getWriter().println("xyz");
Desidero invece scriverlo su un file di testo. Ho creato il finto per la HttpServletResponse e dire Mockito deve restituire la mia PrintWriter personalizzato se HttpServletResponse.getWriter() viene chiamato:
HttpServletResponse resp = mock(HttpServletResponse.class);
PrintWriter writer = new PrintWriter("somefile.txt");
when(resp.getWriter()).thenReturn(writer);
Il file di testo viene generato, ma è vuota. Come posso farlo funzionare?
Edit:
@ Jonathan: Questo è effettivamente vero, beffardo lo scrittore pure è una soluzione molto più pulito. Risolto in quel modo
StringWriter sw = new StringWriter();
PrintWriter pw =new PrintWriter(sw);
when(resp.getWriter()).thenReturn(pw);
Quindi posso solo controllare il contenuto della StringWriter e non avere a che fare con i file a tutti.
Nice. Non avevo considerato l'uso di un 'StringWriter'. – Jonathan