일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 한단어의힘
- 소프시스 밤부 좌식 엑슬 테이블
- 재택근무
- 슬기로운 온라인 게임
- 1일1커밋
- 아비투스
- 한달어스
- 리얼하다
- 목적 중심 리더십
- 한달독서
- 면접
- 목적중심리더십
- 지지않는다는말
- 브런치작가되기
- 소프시스
- 북한살둘레길
- 한달브런치북만들기
- 베드트레이
- 좌식테이블
- 자취필수템
- 끝말잇기
- 프래그먼트
- T자형인재
- 커스텀린트
- 어떻게 나답게 살 것인가
- 테트리스
- 베드테이블
- 함수형 프로그래밍
- 안드로이드
- 캐치마인드
- Today
- Total
정상에서 IT를 외치다
[Android, Mockito] Unit Test using Mockito 본문
안녕하세요. 블랙진입니다.
안드로이드 테스트 코드에 관한 포스팅을 진행하고 있는 중입니다.
이전 UnitTest, UiTest 기본 에서는 UnitTest 에서 Junit 사용법에 대해 알아봤습니다. 이번에는 UnitTest 에서 mockito 를 사용한 방법에 대해 사용법 위주로 포스팅을 해보겠습니다.
mockito 란?
mockito는 유닛 테스트를 위한 자바 프레임워크 입니다.
이에 관한 자세한 예제는 깃허브 문서에서 확인해주세요.
1. app 단계의 Build.gradle
// Mockito framework
testImplementation 'org.mockito:mockito-core:2.22.0'
Mockito 라이브러리를 구현해 줍니다.
2. Person.class 를 생성해줍니다.
public class Person {
private String name;
private int age;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
}
이 Person 클래스의 데이터를 가지고 테스트 코드를 작성할 예정입니다.
3. src/test/java 폴더 아래에 PersonTest 파일을 생성해 줍니다.
이전 포스팅에서 UnitTest 는 test 폴더에 UiTest androidTest 폴더에서 해준다고 했죠?
import org.junit.Test;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class PersonTest {
@Test
public void test() {
Person p = mock(Person.class);
assertTrue( p != null);
when(p.getName()).thenReturn("BlackJin");
when(p.getAge()).thenReturn(27);
assertTrue("BlackJin".equals(p.getName()));
assertTrue(27 == p.getAge());
}
}
위 코드는 mockito usage 에서 발취 해 온 일부 예제 입니다.
설명은 주석으로 대신하겠습니다.
public class PersonTest {
@Test
public void test() {
//mock 을 통해 Person 객체를 생성해줍니다.
Person p = mock(Person.class);
//p 객체가 존재하는지 확인합니다.
assertTrue( p != null);
//when 함수를 통애 p 객체의 getName, getAga 반환값을 정해줍니다.
when(p.getName()).thenReturn("BlackJin");
when(p.getAge()).thenReturn(27);
//p 의 반환 값이 기대값과 같은지 확인 합니다.
assertTrue("BlackJin".equals(p.getName()));
assertTrue(27 == p.getAge());
}
}
Mockito 를 통해 객체의 반환값을 임의로 정해 UnitTest 를 실행할 수 있습니다. 객체에 데이터를 추가하는 다양한 기능 및 검증을 할 수 있는 함수가 많이 있습니다. 이는 공식 문서를 보면서 하나하나씩 공부하고 적용해 나가면 될 것 같습니다. (아직도 공부할게 정말 많네요 ㅠㅜ)
'안드로이드' 카테고리의 다른 글
[Android, MaterialExample] 머테리얼 기본 예제 (기록) (0) | 2018.10.08 |
---|---|
[Android, Espresso] Ui Test using Espresso (0) | 2018.10.08 |
[Android, Test ] UnitTest, UiTest 기본 예제 (1) | 2018.10.05 |
[Android, Dagger2] Dagger2 사용 예제 - 2. SharedPref (0) | 2018.10.04 |
[Android, Dagger2] Dagger2 사용 예제 - 1 (0) | 2018.10.04 |