블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
12-31 00:00
 

달력

« » 2024.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
 

최근에 올라온 글

최근에 달린 댓글

'DAO'에 해당되는 글 1건

  1. 2009.02.05 jMock 을 이용하여 DAO 구현 없이 테스트 하기 2

오늘은 JMock 에 대해서 한번 후집어 보았습니다.

일단 JMock 은 아래 설명과 같습니다.
JMock is a library that supports test-driven development of Java code with mock objects.
Mock objects help you design and test the interactions between the objects in your programs.

영어는 보시는 분에게 해석을 맡기고 저는 바로 jMock 을 사용하는 방법에 대해서 설명 들어갑니다.

jMock 홈페이지는 다음과 같습니다. http://www.jmock.org




1. maven 을 이용하여 JUnit 과 jMock 을 사용할 수 있는 이클립스 프로젝트 만들기

일단 지난 포스트에서 설치했던 maven 을 기준으로 작업을 하였습니다.
(이전 포스트 링크 : Apache Maven 으로 Eclipse 프로젝트 만들기)


ㅁ 새로운 메이븐 프로젝트를 생성합니다.
mvn archetype:create -DgroupId=kr.co.vicki.jmock -DartifactId=vicki-jmock


ㅁ JUnit 과 jMock 을 사용하기 위해 생성된 pom.xml 을 아래와 같이 수정합니다.
  - http://www.jmock.org/maven.html 참조



ㅁ 해당 프로젝트를 이클립스 프로젝트로 변환합니다.
cd vicki-jmock
mvn eclipse:eclipse


ㅁ 생성된 프로젝트를 이클립스에서 불러옵니다.



2. Service Layer 구현 및 DAO interface 정의

/vicki-jmock/src/main/java/kr/co/vicki/jmock/blog/User.java
로그인한 사용자의 정보를 가지고 있는 User 클래스


/vicki-jmock/src/main/java/kr/co/vicki/jmock/blog/ILoginDAO.java
DAO 인터페이스


/vicki-jmock/src/main/java/kr/co/vicki/jmock/blog/UserNotFoundException.java
사용자가 없을 경우에 대한 익셉션


/vicki-jmock/src/main/java/kr/co/vicki/jmock/blog/UnmatchedPasswordException.java
패스워드가 맞지 않을 경우에 대한 익셉션


/vicki-jmock/src/main/java/kr/co/vicki/jmock/blog/ILoginService.java


/vicki-jmock/src/main/java/kr/co/vicki/jmock/blog/LoginServiceImpl.java
ILoginService 구현체



3. jMock 을 이용한 테스트 코드 작성

/vicki-jmock/src/test/java/kr/co/vicki/jmock/blog/LoginServiceImplTest.java


소스에 달린 주석을 보시면 아시겠지만, jMock 이 하는 일은 인터페이스를 가지고 mock 오브젝트를 생성한 후 오브젝트의 메소드의 파라미터로 들어올 값을 예상하여 결과값을 반환해준다던가, 메소드의 호출 회수를 정의하는 역할을 하게 됩니다. Expectations Anonymous 클래스안의 초기화 블럭에서 예상되는 로직에 대한 정의를 하게 됩니다.

조금더 자세한 구문을 확인하고 싶다면 jMock 2 Cheat Sheet 를 확인하시기 바랍니다.


처음에 예제를 보구서 색다른 문법인지 알고 혼란을 겪었었는데... 알고보니 메소드명과 괄호를 한칸 띄었을 뿐이였답니다...
 
참~ 쉽죠잉... 하악...




Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백