tôi bên dưới mã trong một phương pháp mà tôi muốn kiểm traMock File, FileReader và lớp BufferedReader sử dụng Mockito
File f = map.get("key1")
BuffereReader r = new BufferedReader(new FileReader(f));
String line=null;
do {
line=r.readLine();
} while(r!=null);
Tôi muốn thử hoạt động này để tôi có thể vượt qua các nội dung của các tập tin từ JUnit trường hợp thử nghiệm. Tôi đã làm dưới đây:
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();
}
Vì vậy, về cơ bản tôi cần phải vượt qua "line1", "dòng2" và "Line3" như dòng từ tập tin được đọc bởi BufferedReader chế giễu.
Tuy nhiên, khi thực hiện điều đó, nó không thành công như NullPointerException khi cố gắng khởi tạo phần FileReader (f) mới.
Vì vậy, đó là vì tôi không thể giả mạo BufferedReader hoặc phương pháp tiếp cận là sai?
Cảm ơn
Tôi đang sử dụng PowerMockito và PowerMock là không có sẵn cho tôi. Vì vậy, bất kỳ câu trả lời trong ngữ cảnh của PowerMockito sẽ rất hữu ích. – user2654241
Kiểm tra liên kết này: http://stackoverflow.com/questions/7523389/how-do-i-use-powermockito-to-mock-the-construction-of-new-objects-when-testing-a – Sai