habe ich Code unten in einem Verfahren, das ichMock Datei, Filereader und BufferedReader-Klasse Mockito
File f = map.get("key1")
BuffereReader r = new BufferedReader(new FileReader(f));
String line=null;
do {
line=r.readLine();
} while(r!=null);
ich verspotten will diese Operation testen will, so dass ich den Inhalt der Datei aus dem JUnit passieren kann Testfall. Ich habe unten getan:
Map fles = Mockito.mock(ConcurrentHashMap.class);
File file = Mockito.mock(File.class);
Mockito.when(files.get("key1")).thenReturn(file);
FileReader fileReader = Mockito.mock(FileReader.class);
BufferedReader bufferedReader = Mockito.mock(BufferedReader.class);
try {
PowerMockito.whenNew(FileReader.class).withArguments(file).thenReturn(fileReader);
PowerMockito.whenNew(BufferedReader.class).withArguments(fileReader).thenReturn(bufferedReader);
PowerMockito.when(bufferedReader.readLine()).thenReturn("line1")
.thenReturn("line2").thenReturn("line3");
} catch (Exception e) {
Assert.fail();
}
Also im Grunde ich brauche „line1“, „line2“ und „line3“, wie Zeilen aus der Datei zu übergeben, die von dem verspottete BufferedReader gelesen werden.
Allerdings fehlschlägt es als NullPointerException beim Versuch, neue FileReader (f) Teil instanziieren.
Also ist es, weil ich einen BufferedReader nicht verspotten kann oder der Ansatz falsch ist?
Dank
ich PowerMockito verwende und PowerMock ist mir nicht zur Verfügung. Daher werden alle Antworten im Zusammenhang mit PowerMockito sehr nützlich sein. – user2654241
Überprüfen Sie diesen Link: http://stackoverflow.com/questions/7523389/how-doi-i-use-powerermockito-to-mock-the-construction-of-new-objects-when-testing-a – Sai