참조 : http://www.dbunit.org/index.html

Test 할 때 사용할 DB에 있는 값을 XML로 뽑아 내거나 XML에 입력한 데이타를 DB로 넣을 수 있는 오픈소스입니다. JUnit이랑 이름이 비슷한데 JUnit을 확장시킨 거라고 하네요.

사용하는 방법은 여기에 나와있지만 잘 모르겠습니다.

대강 본 바로는 xml에 각 테이블에 들어갈 데이타 들을 입력하고
FlatXmlDataSet 클래스를 이용해서 xml을 을 읽어들이고(ex. IDataSet)
읽어 들인 값을 집어 넣을 DB 커넥션을 설정(ex. IDatabaseConnection)해주면 DB에 들어가는 것 같습니다.
그리고 Assertion 이라는 클래스가 만들어져 있어서 ITable이나 IDataSet 끼리 assertEqulas 메소드를 사용해서 비교할 수 있습니다.

물개 선생님의 코드중 일부를 보시면 다음과 같습니다.  

public void testSampleData() throws Exception {

      insertFlatXmlDataSet("test/src/seal/sampleData.xml");

      assertEquals(3, memberDao.getAll().size());

      memberDao.getMembers("seal").get(0).getEmail());

      assertEquals(2, memberDao.getMembers("s").size());

}

맨 위에 첫줄로 xml에 입력 해 둔 데이타를 DB에 저장하고 그 뒤로는 DB에 들어간 값들을 가지고 테스트를 할 수 있습니다.

음~ 모든 필드들을 다 채워 넣은 다음에 다음과 같은 것들을 테스트 해보고 싶습니다.

  • Agile Java 그룹에 속한 멤버들 중에 이메일에 k가 들어가는 멤버 확인(Group->MemberGroup->Member)
  • keesun이라는 멤버가 속한 그룹의 이름 확인.(Member->MemberGroup->Group)
  • keesun이라는 멤버가 가진 이메일 주소 확인.(Member->Messenger)
  • Messenger 중에 MSN을 사용하지 않는 멤버들의 email.(Messenger->Member)

이렇게 해보면 연관관계가 제대로 되어 있는지 확인 할 수 있을 것 같습니다.