2022.01.19 TIL

김민수·2022년 1월 19일
0

Android

Unit test case 작성

안드로이드 프로젝트를 만들면 androidTest package와 test package가 생성된다.

androidTest는 실제 디바이스 혹은 에뮬레이터에서 실행되며 UI와 관련된 부분들을 테스트할 수 있다.

test는 jvm에서 실행되며 android framework와 관련이 없는, 혹은 mockito를 이용하여 안드로이드 framework의 컴포넌트를 mock하여 테스트할 수 있다.


회원가입 시, 사용자로부터 입력받는 값들을 검증하는 InputValidUtil 클래스와 내부 메서드들을 만들었다.

이 메서드들을 테스트하는 코드는 Junit4를 이용하여 실행 시켰다.

@Test annotation과 assert를 활용하여 boolean 값들을 체크하며 개발을 진행했다.

테스트 코드 작성을 병행하면 작업시간은 늘어나지만 더 탄탄한 코드를 만들 수 있게 된다. 각종 예외 상황에 대한 예상을 할 수 있어, 프로덕트를 더욱 방어적으로 개발할 수 있다.

@Test
fun `올바른 이메일`() {
    val email = "ms@gmail.com"
    val result = InputValidUtil.isValidEmail(email)
    assertEquals(true, result)
}

@Test
fun `빈칸이 있는 이메일`() {
    val email = "ms 1@naver.com"
    assertEquals(false, InputValidUtil.isValidEmail(email))
}

@Test
fun `아이디 없는 이메일`() {
    val email = "@naver.com"
    assertEquals(false, InputValidUtil.isValidEmail(email))
}

@Test
fun `도메인 불량 이메일`() {
    val email = "ms@.com"
    assertEquals(false, InputValidUtil.isValidEmail(email))
}

위 예시는 입력받은 이메일을 검증하는 테스트 코드이다. 테스트 커버리지가 부족하더라도 작성하는 편이 훨씬 낫다.

profile
도전을 즐기는

0개의 댓글