'u kullanarak çalışamaz FileReader yapıcısında FileInputStream öğesinin oluşturulduğunu fark ettim. Bu yüzden FileReader sınıfında ne yapacağım, ama işe yaramıyor. Birisi anlayabilir mi?FileReader'da Mock FileInputStream, PowerMock
aşağıda gibi kod:
package util;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
@PrepareForTest({ FileReader.class, ContentReader.class})
public class FileReaderTest {
@Test
public void testGetContent() throws Exception {
File file = PowerMockito.mock(File.class);
InputStreamReader isr = new InputStreamReader(new ByteArrayInputStream("123".getBytes()));
PowerMockito.whenNew(InputStreamReader.class)
.withArguments(Mockito.any(FileInputStream.class)).thenReturn(isr);
Assert.assertEquals("123", ContentReader.getContent(file));
}
}
class ContentReader {
public static String getContent(File file) throws IOException {
String content = "unknown";
BufferedReader in = null;
in = new BufferedReader(new FileReader(file));
content = in.readLine();
in.close();
return content;
}
}
'ContentReader :: getContent',' PidHelper :: getPidFromFile' ile eşdeğerdir? – gontard
"Yeni InputStreamReader" öğesini kimler arıyor? –
@ gontard, Evet. Bunun için özür dilerim. Yeni bir FileReader (fiel) çağrıldığında, yeni InputStreamReader çağrıldığında, – Linhoo