Ho seguito il codice in un metodo che voglio provareMock file, FileReader e la classe BufferedReader utilizzando Mockito
File f = map.get("key1")
BuffereReader r = new BufferedReader(new FileReader(f));
String line=null;
do {
line=r.readLine();
} while(r!=null);
voglio deridere questa operazione in modo che possa passare il contenuto del file dal JUnit test case. Ho fatto qui di seguito:
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();
}
Quindi, in pratica ho bisogno di passare "linea 1", "linea 2" e "line3" come righe dal file che vengono lette dal BufferedReader deriso.
Tuttavia, in tal caso, fallisce come NullPointerException quando si tenta di creare un'istanza di una nuova parte FileReader (f).
Quindi è perché non riesco a prendere in giro un BufferedReader o l'approccio è sbagliato?
Grazie
Sto usando PowerMockito e PowerMock non è disponibile per me. Quindi qualsiasi risposta nel contesto di PowerMockito sarà molto utile. – user2654241
Controlla questo link: http://stackoverflow.com/questions/7523389/how-do-i-use-powermockito-to-mock-the-construction-of-new-objects-when-testing-a – Sai