조금 친절한 코드 생성기 6 - 테스트 코드 리팩토링
이번에는 테스트 코드부터 만들기로 마음 먹었습니다. 그랬더니, 테스트 코드에서도 리팩토링 할 부분이 있어서 수정했습니다.
일단 프리마커 Configuration을 여러 테스트에서 공유해야 하기 때문에, 인스턴스 변수로 선언했고, @Before를 이용해서 모든 테스트 마다 새로 만든 Configuration 객체를 사용하게 했습니다. 사실 그럴 필요까진 없는데 말이죠;
FreemarkerCodeGenerationService service;
@Before
public void setUp() throws IOException {
Configuration configuration = new Configuration();
configuration.setObjectWrapper(new DefaultObjectWrapper());
configuration.setDirectoryForTemplateLoading(new FileSystemResource("doc/template").getFile());
assertNotNull(configuration);
service = new FreemarkerCodeGenerationService(configuration);
}
@Test
public void generateController() throws IOException {
service.generateController(new FreemarkerControllerSetting("test", "controller.ftl", "test/springsprout/modules", Study.class));
assertTrue(new File("test/springsprout/modules/test/StudyController.java").exists());
service.deleteController();
assertFalse(new File("test/springsprout/modules/test/StudyController.java").exists());
}
//TODO template file loading fail test
//TODO destination file make fail test
//TODO template processing fail test
//TODO destination folder mkdir test
}
자.. 이제는 정말로;;