[JUnit] @Rule TemporaryFolder 사용하기
DBUnitSupport dbUnitSupport;
@Rule public TemporaryFolder folder = new TemporaryFolder();
@Autowired DataSource dataSource;
File tempFile;
@Before
public void setUp() throws Exception{
dbUnitSupport = new DBUnitSupport(dataSource);
}
@Test
public void exportXls() throws Exception {
tempFile = folder.newFile("temp.xls");
dbUnitSupport.setExportedFile(tempFile);
assertThat(tempFile.length(), is(0L));
dbUnitSupport.exportXlsFrom("code", "item", "users", "role", "users_role");
assertThat(tempFile.length(), not(0L));
}
@After
public void after(){
assertFalse(tempFile.exists());
}
흠.. 좋군요!! 파일이 생겨나는 테스트를 하고 나서 매번 수동이든 코드로든 지워야 하는 번거로움이 없어졌습니다.
사실 파란색 코드는 지워도 그만인데, 아직은 TemporaryFolder Rule이 어떻게 동작하는지 확실하게 파악된 상태가 아니여서 남겨뒀습니다.
파일이 delete() 되지 않을 경우에 대비해서 말이죠. 사실 이 아래 글에 작성한 코드에는 치명적인 결함이 있었는데, 그 사실을 이번 테스트를 작성하다가 알게됐습니다. @_@;;
테스트 작성이 여러모로 도움을 주는군요.