11

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);
  }
}
4

1 に答える 1