Whiteship's Note

DbUnit

Hibernate/study : 2007.01.23 17:32


참조 : 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)

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

'Hibernate > study' 카테고리의 다른 글

Criteria에서 Join하기  (0) 2007.01.29
숙제 2  (0) 2007.01.26
HibernateTemplate  (0) 2007.01.26
HQL과 @Entity에 있는 name 속성의 관계  (0) 2007.01.24
Fluent Interface  (2) 2007.01.24
DbUnit  (2) 2007.01.23
Hibernate에서 쿼리 날리는 방법  (0) 2007.01.19
객체들의 상태 변화(in Hibernate)  (2) 2007.01.19
숙제  (0) 2007.01.19
Transaction  (2) 2007.01.02
JUnit 으로 Hibernate 테스트  (0) 2007.01.01
top

  1. Favicon of http://blog.naver.com/paradozz BlogIcon 오승택 2007.01.24 00:43 PERM. MOD/DEL REPLY

    대부분의 파서에서 내부적으로 Reflection과 Introspect 기법을 쓰는것 같습니다.
    아시겠지만서도 쿨럭.
    저런 문자하나하나를 긁어와서 동적으로 하나하나 실행하고 언로드 시키는 기법이라고 불리웁니다.
    하지만 DBUnit은 그냥 문자열에 대해 쿼리를 만드는점이 매력인것 같습니다.

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2007.01.24 01:06 신고 PERM MOD/DEL

    reflection은 쬐끔 봤었는데요. Introspect라는 단어는 처음 봐요.

    Digester도 그렇고 DBUnit도 그렇고 유용한 오픈소스들이 많다는 것을 새삼 느끼게 됐습니다. :)

Write a comment.