Verwenden doReturn teilweise mock-statische Methode mit PowerMockito
Wie ich die doReturn Muster in PowerMockito zu verspotten, eine statische Methode, wenn ich nicht verwenden können, Mockito.wenn()?
Möchte ich zum testen die folgende statische Methode:
public static PrintWriter openWriter(File file, Charset charset, boolean autoflush) throws FileNotFoundException {
return openWriterHelper(new FileOutputStream(file), charset, autoflush);
}
Dies ist mein testMethod:
@Test
public void testOpenWriter_file_charset_autoflush() throws Throwable {
Charset charset = mock(Charset.class);
PrintWriter expected = mock(PrintWriter.class);
File file = mock(File.class);
FileOutputStream fos = mock(FileOutputStream.class);
spy(IOHelper.class);
whenNew(FileOutputStream.class).withArguments(file).thenReturn(fos);
when(IOHelper.openWriterHelper(fos, charset, true)).thenReturn(expected);
PrintWriter observed = IOHelper.openWriter(file, charset, true);
assertEquals(expected, observed);
verifyStatic();
IOHelper.openWriterHelper(fos, charset, true);
}
Das problem ist, dass ich kann nicht openWriterHelper in einem Aufruf, wenn, weil die Methode eine Ausnahme auslösen, wenn übergeben, ein mock-Ausgabestrom.
Wenn es darauf ankommt, dies ist der code für openWriterHelper:
public static PrintWriter openWriterHelper(OutputStream stream, Charset charset,
boolean autoflush) {
return new PrintWriter(new java.io.BufferedWriter(
new java.io.OutputStreamWriter(stream, charset)), autoflush);
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen
oder
siehe Beispiele in:
http://code.google.com/p/powermock/source/browse/trunk/modules/module-test/powermockito/junit4/src/test/java/samples/powermockito/junit4/partialmocking/StaticPartialMockingTest.java?r=1366
Ersetzen Sie diese Zeile von code:
mit