Upload
seongug-jung
View
2.134
Download
1
Embed Size (px)
Citation preview
MVP 와 테스트, 라이브코딩정승욱(TossLab Inc)
Google Developer Expert
MVP 에 대한 간략한 설명테스트 코드 작성테스트 리포트자동화
MVP 에 대한 간략한 설명테스트 코드 작성테스트 리포트자동화
MVP 에 대한 간략한 설명테스트 코드 작성테스트 리포트자동화
MVP 에 대한 간략한 설명테스트 코드 작성테스트 리포트자동화
http://www.tinmegali.com/en/model-view-presenter-android-part-1/
MVP Coding
오늘 만들어 볼 앱
View
Presenter
onSearchTextChanged()1
텍스트 입력 이벤트를 Presenter 로 전달
View
Presenter
onSearchTextChanged()
Model
getImage()
1
2
Presenter 가 Model 로직 수행 요청
View
Presenter
onSearchTextChanged()
Model
getImage()
1
23
Model 에 수행 결과 반환
View
Presenter
onSearchTextChanged()
Model
getImage()
1
23
4
Presenter 가 View 에 화면 갱신을 요청
View (HomeActivity)
Presenter (HomePresenterImpl)
완성된 MVP 코드 보기
Android Test Support Library
JUnit4 지원UI Test 지원
Android 특화된 JUnit Rule
JUnit4 지원UI Test 지원
Android 특화된 JUnit Rule
Espresso
https://google.github.io/android-testing-support-library/docs/espresso/cheatsheet/index.html
JUnit4 지원UI Test 지원
Android 특화된 JUnit Rule
ActivityActivityTestRule
IntentIntentsTestRule
ServiceServiceTestRule
ActivityActivityTestRule
IntentIntentsTestRule
ServiceServiceTestRule
ActivityActivityTestRule
IntentIntentsTestRule
ServiceServiceTestRule
Model 샘플 예제
View 적용 예제
Presenter 적용 예제
그리고 실전 코딩
테스트 리포트
JUnit ReportJacoco Report
connected{flavor}{buildType}AndroidTest
{module}/build/reports/androidTests/index.html
connected{flavor}{buildType}AndroidTest
{module}/build/reports/androidTests/index.html
실행 예시
JUnit ReportJacoco Report
create{flavor}{buildType}CoverageReport
{module}/build/reports/coverage/index.html
create{flavor}{buildType}CoverageReport
{module}/build/reports/coverage/index.html
TossLab 적용 현황
Github
개발자
코드 리뷰를 위한 Pull Request
Github
개발자 Jenkins
GitHub 이 CI 서버로 통보
Github
개발자 Jenkins
빌드
해당 Branch 를 빌드 & 테스트
Github
개발자 Jenkins
빌드
빌드 결과를 Pull Request 에 기록
Q & A