테스트 할 때 추상 클래스 활용하기
테스트를 할 때 종종 같은 설정 파일을 필요로 하는 경우가 있습니다. 이럴 때 Abstract 클래스로 중복되는 설정파일을 읽어들이는 코드를 상위로 올리면 테스트 클래스를 작성할 때 매우 간결해 집니다.
@Override
protected String[] getConfigLocations() {
return new String[] { "file:web/WEB-INF/spring/hibernateContext.xml",
"file:web/WEB-INF/spring/dataSourceContext.xml", "file:web/WEB-INF/spring/daoContext.xml", };
}
}
이제 위 상위 클래스를 상속받아서 테스트 클래스를 작성하면 됩니다.
private MemberDao memberDao;
public void setMemberDao(MemberDao memberDao) {
this.memberDao = memberDao;
}
public void testAdd() throws Exception {
Member member = new Member();
memberDao.add(member);
memberDao.flush();
assertEquals(1, memberDao.getAll().size());
assertNotNull(member.getMemberId());
}
}
이것이 바로 말도 많고 탈도 많은 상속의 묘미가 아닐런지 생각해 봅니다.