Programming

[Android] Testing #1. ATSL (Android Testing Support Library)

 2016. 8. 22. 16:58
반응형

TDD?

Test Driven Development의 줄임말로 중구난방식의 개발과 설계 지향적인 개발에서 벗어나 기능단위의 실용적인 코드를 만들 수 있도록 도와주는 개발 방법론이다.

Android와 iOS 두 플랫폼 모두 이와 같은 방법론을 적용하고 있는 개발자들이 있다는 것을 알게되었다.

Android Sutdio와 Xcode에서 Testing하기 쉽게 기능을 제공해주고 있는 것 같다.

TDD의 장점은 직접 코드를 짜보면서 체험해보는 것이 좋을 듯 하다.



Android Testing Support Library (ATSL)?

안드로이드에서 Robolectric 3.0 이라는 테스팅 라이브러리를 써왔는데 진화하는 안드로이드를 따라잡지 못했다고 한다.

그래서 Android Testing Support Library (ATSL) 를 구글이 직접 공개헀다.

공식문서는 있지만 이에 대해 처음부터 함께 소화하는 가이드나 관련 서적이 없다. 왜ㅠㅠㅠㅠㅠ

그래서 Unit Test 부터 직접 해보기로 했다!ㅋㅋ


https://docs.google.com/presentation/d/1JaRT90YVoVCGJEhBqyU13F0boKe50tQzeP4dQNUXTiU/edit?usp=sharing

https://www.davidlab.net/ko/tech/android-studio-tips-applying-unit-testing-part1/


dependency를 설정하고 SyncNow 해주면 자동으로 파일이 추가된다

그리고 src 폴더 밑에 자동으로 test 폴더가 생성되는 것이 아니기 때문에

test/java 폴더를 생성해준다


참고자료에서는 Test Artifact를 설정하게 되어있지만 보이지 않는다

테스팅이 자동으로 선택되게 설정되어 있는 듯하다

http://stackoverflow.com/questions/35708263/test-artifact-selector-missing-gone-from-build-variants-in-android-studio-2-beta




기존에 진행하던 BLE 프로젝트에 적용시켜보려 했는데

순차적으로 실행되지 않으면 제기능을 하지 않아서인지 테스팅을 적용해보기 어려웠다

시작단계인 DreamNote 프로젝트에 테스팅을 연습해보고 BLE로 넘어가야겠다

gradle로 처음부터 생성된 DreamNote 프로젝트에는 자동으로 androidTest와 test 폴더가 생성되어 있었다.

내용도 별다른 차이가 없는 것 같아서 찾아보니


androidTest = UI Testing

test = Unit Testing


이렇게 용도가 구분되어 있었다.

간단한 sum 함수를 테스트 해보기로 했기 때문에 test 폴더에 테스트 코드를 작성했다.


Mac에서 테스트 코드 실행 단축키는 ctrl + shift + R 이다.

아래와 같이 한개의 test가 통과되었음을 확인할 수 있다.


반응형