Android에서 Test 환경


Android에서 Testing에 대해서 잘 정리 한 글로, 2013년 초에 쓰여졌지면 현재의 Android Studio 환경에도 계속 유효합니다.
  1. Robolectric
    Android에서 제공하는 AndroidTestCase 등의 class는 device나 emulator 등에서 실행되는 instrument test입니다. 하지만 Unit Test이 오래 걸리면 안된다는 말이 있는 것처럼 이 환경은 Unit Test에 적합하지 않습니다.
    대신에 Robolectric은 Host JVM에서 Android Runtime 환경을 제공해서 빠르게 테스트를 실행 할 수 있게 합니다.
  2. Fest AssertJ for Android
    원문에는 Fest로 되어 있는데, 현재는 project가 assertj로 바뀌어 있네요. test code 자체와 실제 exception message를 더 readable하게 만들어 줍니다. 다만 개인적으로는 Hamcrest matcher 가 이 용도로 충분하다고 생각합니다.
  3. Mockito
    Mock을 설명하는 것은 Testing Framework을 전부 설명해야 하기 때문에 별도로 언급하지는 않겠습니다. 추가적으로, Test 시에 원래 class의 private, final 등의 객체를 test하기 위해 EasyMock/Mockito에 추가적으로 PowerMock을 사용할 수 있습니다.
  4. Robotium
    Integration Test를 위해 사용한다고 합니다.
  5. Roboguice
    Dependecy Injection을 제공하는 framework이 여러 가지 있고, 그 중 하나입니다.
대략 절반 정도를 사용 해 보았는데, Android Test 환경은 하나의 기능이 Google에서 제공된다기보다는 개별 library들이 어느 정도의 boundary를 구현하는 방식이군요.

핑백

  • Mono log : Android Robolectric 3.0과 Powermock을 같이 쓰기 2015-06-27 00:08:14 #

    ... Android Test 환경은 Robolectric, Powermock 등 여러 라이브러리로 구성합니다. (Android에서 Test 환경 참조) 이 경우 여러 라이브러리를 동시에 사용한다면 개별 test 환경들이 각자 @RunWith Annotation을 사용하는 Runner를 제공 ... more