IllegalStateException
メソッドによってスローされたために、「一時フォルダーはまだ作成されていません」というエラーが表示されますTemporaryFolder.getRoot()
。初期化されていないように見えますが、私の調査によると、これは通常、一時フォルダーが setUp() メソッドで初期化されている場合に当てはまります。しかし、私がした@Rule
ようにそれを使用すると、私の意見ではうまくいくはずです。何か案は?
テストクラス
public class FileReaderTest extends TestCase {
@Rule
public TemporaryFolder folder = new TemporaryFolder();
public FileReaderTest(String testName) {
super(testName);
}
@Override
protected void setUp() throws Exception {
super.setUp();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
public void testCSVWriterAndReader() throws Exception{
testWriterAndReader(new CSVFileWriter(), new CSVFileReader());
}
private void testWriterAndReader(FileWriteService writer, FileReader reader) throws Exception {
folder = new TemporaryFolder();
File tempFile = folder.newFile("test.csv");
DataSet initializedData = createMockData();
writer.writeDataSetToFile(initializedData, tempFile.getPath());
DataSet readData = reader.getDataFromFile(new FileInputStream(tempFile));
assertEquals(initializedData, readData);
}
}