MVP ATSL Live Coding

Post on 21-Apr-2017

2.154 views 1 download

Transcript of MVP ATSL Live Coding

MVP 와 테스트, 라이브코딩정승욱(TossLab Inc)

Google Developer Expert

MVP 에 대한 간략한 설명테스트 코드 작성테스트 리포트자동화

MVP 에 대한 간략한 설명테스트 코드 작성테스트 리포트자동화

MVP 에 대한 간략한 설명테스트 코드 작성테스트 리포트자동화

MVP 에 대한 간략한 설명테스트 코드 작성테스트 리포트자동화

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

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