JUnit로 검색한 결과 :: 시소커뮤니티[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

회원가입 I 비밀번호 찾기


SSISO Community검색
SSISO Community메뉴
[카페목록보기]
[블로그등록하기]  
[블로그리스트]  
SSISO Community카페
블로그 카테고리
정치 경제
문화 칼럼
비디오게임 스포츠
핫이슈 TV
포토 온라인게임
PC게임 에뮬게임
라이프 사람들
유머 만화애니
방송 1
1 1
1 1
1 1
1 1
1

JUnit로 검색한 결과
등록일:2008-06-10 15:46:43
작성자:
제목:Easymock 연습하기 2탄


import static org.easymock.EasyMock.*;
import org.JUnit.*;
import net.webapp2.member.dao.MemberDao;
import net.webapp2.member.domain.Member;

public class MemberRepositoryTest {

   MemberDao mockMemberDao;
   MemberRepository memberRepository;

   @Before
   public void setup(){
       mockMemberDao = createMock(MemberDao.class);
       memberRepository = new MemberRepositoryImpl();

       memberRepository.setMemberDao(mockMemberDao);

   }

   @Test
   public void add(){
       final Member member = new Member();
       mockMemberDao.add(member);

       replay(mockMemberDao);
       memberRepository.add(member);

       verify(mockMemberDao);
   }
}


먼저 Test할 대상 클래스와 Mock 테스트를 할 클래스 타입의 객체를 만듭니다.(하늘색) 그리고 memberRepository에서 memberDao객체를 사용해야 하기 때문에 setter를 사용하여 위에서 만든 Mock 객체로 setting 해줍니다.(첫번째 분홍색)

그리고 시나리오를 생각해 봅니다.
"Member를 추가하는 기능이기 때문에 memberRepository의 add(Member)를 호출하면 memberDao의 add(Member)가 호출이 되서 DB에 들어가겠구나 리턴값은 없고..."

다음 테스트 메소드를 작성하기 시작하는데 먼저 시나리오에 해당하는 부분(두번째 분홍색 윗부분)에서 Mock 객체(mockMemberDao)에게 일어날 일을 생각합니다. mockMemberDao.add(member); 이것 밖에 없네요.

이제 시나리오 대로 돌아가는지 replay(Mock 객체) 시켜봅니다. replay 시키면서 당연히 "액션"을 취해 줘야 하는데 이 "액션"이 여기서는 memberRepository.add(member) 가 됩니다.

그리고 시나리오 대로 액션이 이뤄졌는지 verify(Mock 객체)를 합니다.

출처 : http://whiteship.tistory.com/238