Chcę przetestować mój serwlet za pomocą mockito. Chcę również wiedzieć, jakie są dane wyjściowe serwera. Więc jeśli serwlet wypisze coś w ten sposób:Mockito i HttpServletResponse - zapis danych wyjściowych do pliku tekstowego
HttpServletResponse.getWriter().println("xyz");
Chcę zamiast tego napisać do pliku tekstowego. I stworzył makiety dla HttpServletResponse i powiedzieć Mockito powinien wrócić mój własny PrintWriter jeśli HttpServletResponse.getWriter() jest wywoływana:
HttpServletResponse resp = mock(HttpServletResponse.class);
PrintWriter writer = new PrintWriter("somefile.txt");
when(resp.getWriter()).thenReturn(writer);
pliku tekstowego jest generowany, ale jest pusty. Jak mogę to sprawić?
Edit:
@Jonathan: Ów rzeczywiście prawda, szydząc pisarza, jak również jest znacznie czystsze rozwiązanie. Rozwiązano to tak
StringWriter sw = new StringWriter();
PrintWriter pw =new PrintWriter(sw);
when(resp.getWriter()).thenReturn(pw);
Następnie można po prostu sprawdzić zawartość StringWriter i nie mają do czynienia z plikami w ogóle.
Nice. Nie rozważałem użycia "StringWriter". – Jonathan