0
FileReaderコンストラクタでFileInputStreamが作成されていることに気付きました。だから私はFileReaderクラスでそれを擬似するが、それは動作しません。誰もそれを把握できますか?FileReaderのMock FileInputStreamはPowerMockを使用できません
コードそれ以下のように:
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'と同じですか? – gontard
誰が 'new InputStreamReader'を呼び出しますか? –
@ gontard、はい。そのために残念。私はコード – Linhoo