8.1. DbUnit 사용하기
1. 먼저 DB에 입력할 dataset을 xml 형태로 작성 합니다.
이 때 주의 하실 점은 Entity와 Attribute의 이름들은 Object의 식별자를 사용하는 것이 아니라 Relation에서 사용되는 이름으로 사용해야 합니다.
[#M_ more.. | less.. |
<dataset>
<k_group groupId="1" name="AJN" website="http://agilejava.net" />
<k_group groupId="2" name="OpenSeed" website="http://agilejava.net" />
<k_member memberId="1" name="keesun" email="keesun@email.com" city="서울"/>
<k_member memberId="2" name="parsdozz" email="parsdozz@email.com" city="서울"/>
<k_member memberId="3" name="seal" email="seal@email.com" city="대전"/>
<k_membergroup memberGroupId="1" memberId="1" groupId="1" role="O"/>
<k_membergroup memberGroupId="2" memberId="1" groupId="2" role="M"/>
<k_membergroup memberGroupId="3" memberId="2" groupId="2" role="M"/>
<k_membergroup memberGroupId="4" memberId="3" groupId="2" role="A"/>
<k_messenger messengerId="1" memberId="1" m_type="M" m_id="keesun@msn.com"/>
<k_messenger messengerId="2" memberId="1" m_type="S" m_id="keesun"/>
<k_messenger messengerId="3" memberId="2" m_type="M" m_id="paradozz@msn.com"/>
<k_messenger messengerId="4" memberId="3" m_type="S" m_id="seal"/>
</dataset>
_M#]
2. 입력한 샘플 데이타를 테스트할 메소드를 만들고 DbUnit을 사용하여 DB에 넣습니다.
public void testWithSampleData() throws Exception{
insertFlatXmlDataSet("test/src/keesun/kSampleData.xml");
}
이상태에서 test를 돌려보고 DbUnit이 동작하는데 이상은 없는지 확인합니다. 만약 위에서 작성한 xml에 매칭되는 컬럼을 못찾을 경우 에러가 발생합니다.
3. 입력한 샘플을 기반으로 간단한 쿼리를 날려서 결과를 확인해 봅니다.
public void testWithSampleData() throws Exception{
insertFlatXmlDataSet("test/src/keesun/kSampleData.xml");
assertEquals(3, kMemberDao.getAll().size());
assertEquals(2, kGroupDao.getAll().size());
assertEquals(4, kMemberGroupDao.getAll().size());
assertEquals(4, kMessengerDao.getAll().size());
}
테스트는 통과 합니다~ :)
좀더 복잡한 쿼리를 날리기 위해서는 HQL과 Criteria를 공부해야 합니다. 하지만 그다지 어렵지 않다는거~