안드로이드 TDD 정착기(Robolectric 과 Jacoco)토스랩 Steve 승욱 Jung(Robolectric Contributor)
Android Instrument 사용- 목표 커버리지 : 80%- 실제 커버리지 : 60%
UI 테스트를 제외하면 사실상 80%...
지나치게 복잡한 테스트 준비 단계
단점1
1. 테스트 대상 APK 빌드2. 에뮬레이터에 설치 3. 테스트 프로젝트 빌드 4. 테스트 코드 설치5. 테스트 시작
시간이 돈인데...
단점2
테스트 프로젝트의 완전한 분리1. 테스트 프로젝트 단독 실행 불가
(의존성 연결 필요)2. 자동화의 큰 걸림돌
단점3
에뮬레이터의 한계
1. 테스트 환경 구성의 어려움2. 리눅스 콘솔에서의 테스트
GDG 세미나 카카오에서 사례 공유
직접 Android SDK 와 테스트 프로젝트 의존성 연결
꽤 복잡한 설정에 무슨 말인지 하나도 기억이...
2013년 제대로 편한 TDDWeb Spring 환경
Spring 프레임워크의 최대 장점
쉬운 테스트 환경 구성테스트에 대한 높은 접근성
정착된 TDD 문화
짧고 간결해야 한다.쉽게 적용할 수 있어야 한다.
짧고 간결해야 한다.쉽게 적용할 수 있어야 한다.실제와 가까워야 한다.
JUnit4 를 사용 여부최소한의 환경 설정으로 적용 여부
UI 테스트 여부
1. Build Script 추가2. Plug-in 추가3. Dependency 추가4. Configration 추가
1. Build Script 추가2. Plug-in 추가3. Dependency 추가4. Configration 추가
1. Build Script 추가2. Plug-in 추가3. Dependency 추가4. Configration 추가
1. Build Script 추가2. Plug-in 추가3. Dependency 추가4. Configure 추가
1. 테스트 코드 작성2. 테스트 동작 설정3. 테스트 코드 실행
실제 Http 테스트를 하려면?- HttpLayer 설정하기멀티 쓰레드 테스트를 하려면?- Awaitility 사용하기초기 설정을 세밀화 하고 싶으면?- 커스텀 Runner 이용하기
테스트 Tip
Jacoco 설정하기
매우 복잡하니 가급적 샘플 코드를 따라하시길..
Flavor 설정시 경로 및 Task 이름 주의
Tip
테스트는 오류의 부재가 아닌 존재를 보기 위함이다.
Testing shows the presence, not the absense of bug.- Edsger W. Dijikstra
마지막 말
개발자 블로그 : http://tosslab.github.io