태초에 사람이 완벽하기는 커녕, 전혀 믿을게 되지 못하기 때문에 우리는 테스트가 반드시 필요하다.

 

Android에는 크게 2가지의 테스트가 존재한다. 1. Unit Test, 2. Instrumentation Test.

* Unit Tests는 Development machine의 JVM에서 실행되는 테스트를 의미하고,

* Instrumentation Tests는 실제 기기에서 수행되는 테스트를 의미한다.

Unit Tests는 Android API 사용에 제한이 있는 단점이 존재하지만, Development machine에서 각각의 기능을 빠르게 테스트를 수행 할 수 있다는 장점이 있다.

 

Android Studio에서 Unit Tests를 작성하기 위해서는 먼저 build.gradle에 아래 2개의 dependencies를 추가해줘야 한다.

 

2개의 dependency를 추가한 뒤, Build Variants의 Test Artifact를 Unit Tests로 변경한다.

 

이제 필요한 테스트 함수를 src/test/java 밑에 추가한 뒤, 구현한 Business Logic들이 정상적으로 동작하는지 검증하면된다.

추가로 각각의 테스트 함수는 상호 의존성 없이 작성되어야 한다.

 

아래는 AES Encryption/Decryption이 정상적으로 동작하는지 검증하기 위해 작성한 함수다.

Unit Tests를 통해 정상적인 경우는 물론, 예상할 수 있는 예외상황이 미리 정의된 대로 처리가 되는지 검증 할 수 있다.

 

태초에 인간은 완벽하지 않다. 쏟아지는 버그 리포트에 당황하지 말고 미리미리 대비하자.

 

* References

http://tools.android.com/tech-docs/unit-testing-support