테스트 단위 테스트 / UI 테스트 / 인수 테스트 / 그 밖의 테스트
unit test 클래스 단위로 테스트
github.com/junit-team/junit/wiki/Getting-started
mockito.org mockito를 이용한 객체의 목화
유닛테스트 예외 던지지 않도록
mock(클래스) / spy(생성) / verify(객체, times(횟수)).함수명((클래스)any());
when(객체.함수).thenReturn(밸류); 호출했을 때 밸류를 넘긴다
아래는 기존 클래스 처리하지 않기 위해
doReturn(밸류).when(객체).함수(밸류);
doNothing().when(객체).함수(밸류);
@VisibleForTest 기능없지만 테스트용이라고 표시
Factory, InjectMock, DI 컨테이너 등 고려
테스트 도입시 코드를 새로 작성 or 기존 코드 편집시 테스트 준비
메서드가 길면 분리 / 리팩터링 리팩터->익스트랙트->메서드
테스트를 위해 메서드내 객체는 인수화
unit test 클래스 단위로 테스트
github.com/junit-team/junit/wiki/Getting-started
mockito.org mockito를 이용한 객체의 목화
testImplementation 'junit:junit:4.12' testImplementation "org.mockito:mockito-core:1.+"build.gradle android 내의 testOptions{ unitTests.returnDefaultValues = true }
유닛테스트 예외 던지지 않도록
mock(클래스) / spy(생성) / verify(객체, times(횟수)).함수명((클래스)any());
when(객체.함수).thenReturn(밸류); 호출했을 때 밸류를 넘긴다
아래는 기존 클래스 처리하지 않기 위해
doReturn(밸류).when(객체).함수(밸류);
doNothing().when(객체).함수(밸류);
@VisibleForTest 기능없지만 테스트용이라고 표시
Factory, InjectMock, DI 컨테이너 등 고려
테스트 도입시 코드를 새로 작성 or 기존 코드 편집시 테스트 준비
메서드가 길면 분리 / 리팩터링 리팩터->익스트랙트->메서드
테스트를 위해 메서드내 객체는 인수화
'개발정보 > 안드로이드' 카테고리의 다른 글
안드로이드 개발 레벨업 교과서 9장 CI(Jenkins, Circle CI) (0) | 2019.01.16 |
---|---|
안드로이드 개발 레벨업 교과서 8장 UI Test (0) | 2019.01.15 |
안드로이드 개발 레벨업 교과서 6장 Gradle (0) | 2019.01.15 |
안드로이드 개발 레벨업 교과서 5장 MVP, MVVM (0) | 2019.01.08 |
안드로이드 개발 레벨업 교과서 4장 Support Library (0) | 2019.01.08 |