Mam poniżej kodu w sposób, który chcę przetestowaćMock File, FileReader i klasa BufferedReader przy użyciu Mockito
File f = map.get("key1")
BuffereReader r = new BufferedReader(new FileReader(f));
String line=null;
do {
line=r.readLine();
} while(r!=null);
chcę wyśmiewać tę operację tak, że mogę przekazać zawartość pliku z JUnit przypadek testowy. Zrobiłem poniżej:
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();
}
Więc w zasadzie muszę przekazać „line1”, „” i „line2 Line3” jak linie z pliku, które są odczytywane przez wyśmiewali BufferedReader.
Jednak po wykonaniu tej czynności kończy się niepowodzeniem jako wyjątek NullPointerException podczas próby utworzenia instancji nowej części FileReader (f).
Czy to dlatego, że nie mogę kpić z BufferedReader lub podejście jest błędne?
Dzięki
Używam PowerMockito i PowerMock nie jest dla mnie dostępne. Więc wszelkie odpowiedzi w kontekście PowerMockito będą bardzo przydatne. – user2654241
Sprawdź ten link: http://stackoverflow.com/questions/7523389/how-do-i-use-powermockito-to-mock-the-construction-of-new-objects-when-testing-a – Sai