SlideShare a Scribd company logo
1 of 14
Mockito 유닛테스트 작성하기
with MVP
박치원
안드로이드에서의 테스트
실제 기기나 에뮬레이터를 통한 테스트
느리지만 테스트의 성공이 앱에서의 동작
을 보장.
10%
20%
70%
클래스, 메소드로만 하는 테스트.
JVM상에서 돌아가기 때문에
속도는 빠르지만 테스트의 성공이
앱에서의 동작을 보장하지는 않음.
이메일 로그인 Flow Chart
이메일, 비
밀번호 입
력
로그인
클릭
유효성
검사
로그인
API
로그인 성공
에러 메세지
MVP에서의 동작 흐름
View Presenter Model
1.이메일, 패스워드 입력
2.로그인버튼 클릭
10. View 업데이트
3.이벤트전달
4. 입력값 유효성 검증
5.로그인 요청
6. 로그인처리
7. 콜백9.업데이트
8. 로그인 결과에 따라 View 업데이트
Test Case
1. 이메일 입력값 오류
2. 패스워드 입력값 오류
3. 로그인 성공
4. 로그인 실패
Test Case 1 - 잘못된 이메일 형식 입력
테스트 시나리오
1. 잘못된 이메일을 입력
2. 로그인 버튼 클릭
3. 유효성 오류 메세지 출력
Test Case 2 - 잘못된 패스워드 형식 입력
테스트 시나리오
1. 잘못된 패스워드를 입력
2. 로그인 버튼 클릭
3. 유효성 오류 메세지 출력
Test Case 3 - 로그인 성공
테스트 시나리오
1. 이메일, 패스워드 입력
2. 로그인 버튼 클릭
3. 유효성 검증
4. 로그인 API 요청
5. 로그인 성공
Test Case 4 - 로그인 실패
테스트 시나리오
1. 이메일, 패스워드 입력
2. 로그인 버튼 클릭
3. 유효성 검증
4. 로그인 API 요청
5. 로그인 실패 메세지
THANK YOU

More Related Content

More from Wonjun Hwang

JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)Wonjun Hwang
 
Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)Wonjun Hwang
 
XSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyXSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyWonjun Hwang
 
Flutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team StudyFlutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team StudyWonjun Hwang
 
얕은복사,깊은복사
얕은복사,깊은복사얕은복사,깊은복사
얕은복사,깊은복사Wonjun Hwang
 
Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기Wonjun Hwang
 
완전 유용한 CSS 모음
완전 유용한 CSS 모음완전 유용한 CSS 모음
완전 유용한 CSS 모음Wonjun Hwang
 
2024 개발 트렌드
2024 개발 트렌드2024 개발 트렌드
2024 개발 트렌드Wonjun Hwang
 
디바운싱과 쓰로틀링
디바운싱과 쓰로틀링디바운싱과 쓰로틀링
디바운싱과 쓰로틀링Wonjun Hwang
 
스마트한 팀 협업
스마트한 팀 협업스마트한 팀 협업
스마트한 팀 협업Wonjun Hwang
 
구름톤 8기 후기
구름톤 8기 후기구름톤 8기 후기
구름톤 8기 후기Wonjun Hwang
 
2024년 키워드로 알아보는 트렌드
2024년 키워드로 알아보는 트렌드2024년 키워드로 알아보는 트렌드
2024년 키워드로 알아보는 트렌드Wonjun Hwang
 
오버라이딩 조금 더 알아보기
오버라이딩 조금 더 알아보기오버라이딩 조금 더 알아보기
오버라이딩 조금 더 알아보기Wonjun Hwang
 
컴포넌트 설계
컴포넌트 설계컴포넌트 설계
컴포넌트 설계Wonjun Hwang
 

More from Wonjun Hwang (20)

JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)
 
Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)
 
XSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyXSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team Study
 
Flutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team StudyFlutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team Study
 
PWA
PWAPWA
PWA
 
얕은복사,깊은복사
얕은복사,깊은복사얕은복사,깊은복사
얕은복사,깊은복사
 
Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기
 
완전 유용한 CSS 모음
완전 유용한 CSS 모음완전 유용한 CSS 모음
완전 유용한 CSS 모음
 
2024 개발 트렌드
2024 개발 트렌드2024 개발 트렌드
2024 개발 트렌드
 
디바운싱과 쓰로틀링
디바운싱과 쓰로틀링디바운싱과 쓰로틀링
디바운싱과 쓰로틀링
 
Passkey
PasskeyPasskey
Passkey
 
스마트한 팀 협업
스마트한 팀 협업스마트한 팀 협업
스마트한 팀 협업
 
AI News '23.12
AI News '23.12AI News '23.12
AI News '23.12
 
Google Analytics
Google AnalyticsGoogle Analytics
Google Analytics
 
구름톤 8기 후기
구름톤 8기 후기구름톤 8기 후기
구름톤 8기 후기
 
2024년 키워드로 알아보는 트렌드
2024년 키워드로 알아보는 트렌드2024년 키워드로 알아보는 트렌드
2024년 키워드로 알아보는 트렌드
 
상속과 구현
상속과 구현상속과 구현
상속과 구현
 
오버라이딩 조금 더 알아보기
오버라이딩 조금 더 알아보기오버라이딩 조금 더 알아보기
오버라이딩 조금 더 알아보기
 
컴포넌트 설계
컴포넌트 설계컴포넌트 설계
컴포넌트 설계
 
성능 테스트
성능 테스트성능 테스트
성능 테스트
 

Mockito unit test

  • 2. 안드로이드에서의 테스트 실제 기기나 에뮬레이터를 통한 테스트 느리지만 테스트의 성공이 앱에서의 동작 을 보장. 10% 20% 70% 클래스, 메소드로만 하는 테스트. JVM상에서 돌아가기 때문에 속도는 빠르지만 테스트의 성공이 앱에서의 동작을 보장하지는 않음.
  • 3. 이메일 로그인 Flow Chart 이메일, 비 밀번호 입 력 로그인 클릭 유효성 검사 로그인 API 로그인 성공 에러 메세지
  • 4. MVP에서의 동작 흐름 View Presenter Model 1.이메일, 패스워드 입력 2.로그인버튼 클릭 10. View 업데이트 3.이벤트전달 4. 입력값 유효성 검증 5.로그인 요청 6. 로그인처리 7. 콜백9.업데이트 8. 로그인 결과에 따라 View 업데이트
  • 5. Test Case 1. 이메일 입력값 오류 2. 패스워드 입력값 오류 3. 로그인 성공 4. 로그인 실패
  • 6. Test Case 1 - 잘못된 이메일 형식 입력 테스트 시나리오 1. 잘못된 이메일을 입력 2. 로그인 버튼 클릭 3. 유효성 오류 메세지 출력
  • 7.
  • 8. Test Case 2 - 잘못된 패스워드 형식 입력 테스트 시나리오 1. 잘못된 패스워드를 입력 2. 로그인 버튼 클릭 3. 유효성 오류 메세지 출력
  • 9.
  • 10. Test Case 3 - 로그인 성공 테스트 시나리오 1. 이메일, 패스워드 입력 2. 로그인 버튼 클릭 3. 유효성 검증 4. 로그인 API 요청 5. 로그인 성공
  • 11.
  • 12. Test Case 4 - 로그인 실패 테스트 시나리오 1. 이메일, 패스워드 입력 2. 로그인 버튼 클릭 3. 유효성 검증 4. 로그인 API 요청 5. 로그인 실패 메세지
  • 13.