Mockito 배우 기.-Mockito 쓰기 시작.
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 반환 값 이 예상 과 같 습 니까?
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Windows에서 CodeArtifact(Maven)용 토큰을 자동으로 생성하는 방법CodeArtifact를 사용한 적이 있거나 사용할 계획이라면 매일 모든 Maven 프로젝트에서 수동으로 토큰(CODEARTIFACT_AUTH_TOKEN)을 생성해야 합니다. 이는 어려울 수 있으며 개발 속도를 늦출...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.