Mockito 배우 기.-Mockito 쓰기 시작.

Mockito 는 유행 하 는 Mocking 프레임 워 크 입 니 다.사용 하기 가 간단 하고 학습 원가 가 낮 으 며 매우 간결 한 API 를 가지 고 테스트 코드 의 가 독성 이 높다.그래서 인기 가 많 고 사용자 군 이 많아 지면 서 많은 오픈 소스 소프트웨어 도 Mockito 를 선택 했다.Mockito 에 대한 정 보 를 더 알 고 싶 으 시 면 공식 사 이 트 를 방문 하 십시오.http://mockito.org/
Mockito 를 사용 하기 전에 Stub 와 Mock 의 차 이 를 간단하게 알 아 보 세 요.
Stub 대상 은 테스트 에 필요 한 테스트 데 이 터 를 제공 하고 각종 상호작용 에 해당 하 는 응답 을 설정 할 수 있 습 니 다.예 를 들 어 우 리 는 방법 호출 의 반환 값 을 설정 할 수 있다.Mockito 에서 when(...).thenReturn(...)과 같은 문법 은 설정 방법 이 호출 하 는 반환 값 입 니 다.또 언제 호출 할 지 이상 을 던 지 는 방법 등 도 설정 할 수 있다.Mock 대상 은 테스트 에서 의존 하 는 대상 간 의 상호작용 이 기대 에 도달 할 수 있 는 지 검증 하 는 데 사 용 됩 니 다.Mockito 에 서 는 verify(...).methodXxx(...)문법 으로 methodXxx 방법 이 예상 한 대로 호출 되 었 는 지 검증 합 니 다.stub 와 mock 에 관 한 상세 한 논술 은 Martin Fowler 글 인 을 참조 하 십시오.http://martinfowler.com/articles/mocksArentStubs.html。Mocking 프레임 워 크 에서 이른바 mock 대상 은 실제로 상기 stub 와 mock 대상 으로 동시에 사용 된다.반환 값 을 설정 할 수도 있 고 검증 할 수도 있 기 때문이다.
Mockito 획득
Jar 가방 획득
아래 링크 를 방문 하여 최신 Jar 가방 을 다운로드 할 수 있 습 니 다.필자 가 사용 하 는 현재 최신 버 전 은 1.8.5 입 니 다.http://code.google.com/p/mockito/downloads/list
Maven
프로젝트 가 Maven 을 통 해 관리 된다 면 프로젝트 의 Pom.xml 에 다음 과 같은 의존 도 를 추가 해 야 합 니 다.

<dependencies>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.8.5</version>
<scope>test</scope>
</dependency>
</dependencies>

Mocktio 패키지 도입
프로그램 에서 import org.mockito 를 사용 할 수 있 습 니 다.그리고 static 방법 을 호출 하거나 import static org.mockito.*;개인 은 후자 에 경향 이 있다.왜냐하면 이렇게 하면 더욱 편리 할 수 있 기 때문이다.
간단 한 예

import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import java.util.Iterator;
import org.junit.Test;

/**
 * 
 * @author Brian Zhao
 */
public class SimpleTest {
    
    @Test
    public void simpleTest(){
        //arrange
        Iterator i=mock(Iterator.class);
        when(i.next()).thenReturn("Hello").thenReturn("World");
        //act
        String result=i.next()+" "+i.next();
        //verify
verify(i, times(2)).next();
        //assert
        assertEquals("Hello World", result);
    }
}

위의 예 에는 Mockito 의 기본 기능 이 포함 되 어 있 습 니 다.
Mock 개체 만 들 기
Mock 대상 을 만 드 는 문법 은'mock(class or interface)'입 니 다.예 에서 Iterator 인터페이스의 mock 대상 을 만 들 었 습 니 다.
설정 방법 호출 예상 되 는 반환
when(mock.someMethod().thenReturn(value)을 통 해 mock 대상 의 특정한 방법 으로 호출 할 때의 반환 값 을 설정 합 니 다.예 를 들 어 Iterator 인터페이스의 next()방법 호출 에 대해 예상 한 설정 을 했 습 니 다.next()방법 을 호출 할 때'Hello'로 돌아 갑 니 다.반환 값 을 연속 으로 설정 하기 때문에 두 번 째 호출 시'World'로 돌아 갑 니 다.
검증 방법 호출
다음은 mock 대상 의 next()방법 에 대해 일련의 실제 호출 을 진행 하 였 다.mock 대상 이 구축 되면 자신의 상호작용 행 위 를 자동 으로 기록 하기 때문에 우 리 는 선택 적 으로 그의 상호작용 행 위 를 검증 할 수 있다.Mockito 에서 mock 대상 의 상호작용 행 위 를 검증 하 는 방법 은 verify(mock).someMethod(...)입 니 다.그래서 이 방법 으로 next()방법 호출 을 검 증 했 습 니 다.두 번 호출 되 었 기 때문에 verify 에서 times 매개 변 수 를 지정 하 였 습 니 다(times 의 구체 적 인 응용 은 뒤에서 계속 소개 합 니 다).마지막 으로 assert 반환 값 이 예상 과 같 습 니까?

좋은 웹페이지 즐겨찾기