일단, 먼저  Robotium은 Unit Test 기반 입니다.

그렇기 때문에 하나의 Test Case가 하나의 함수로 이뤄져야 합니다.

현재 SingPlay의 Robotium은 하나의 함수안에 모든 Test Case들이 들어가 있는 형태입니다.

하나의 함수에 모든 Test Case가 들어 있는 경우, 어떤 Test Case에서 Error가 발생했는지

판단하기가 어렵게 됩니다.

함수로 나눈다면 어떤 Test에서 Error가 발생했는지 쉽게 알 수 있습니다.








두번째, Quick Test Mode가 있고, Full Test Case가 따로 존재할 경우.

이런 경우 Class를 따로 나눠서 작업 하면 될 듯합니다.







세번째,  xxxx앱에 Robotium을 적용 시, Error 나는 문제에 대해서...

Robotium은 하나의 Test Case가 끝나고 나면, Application이 종료 되었다가 새로 실행이 됩니다.

그러나 현재 xxxx경우 Application내의 최종 Activity 상태에서, 
Back Key한번으로 앱종료가 되지 않도록 설계 되어 있습니다.
(두번 Back Key를 눌러야 앱 종료되게 되어있습니다.)

이 부분에서 Robotium 적용시 오류가 발생합니다.



기존 Process에서 강제로 Back Key를 추가하거나, 
강제로 Application을 종료시켜 진행 해보려 했으나, 

이 경우, INJECT_EVENTS permission를 요구합니다.
(INJECT_EVENTS 퍼미션의 경우, 시스템 Application에서만 할당 가능합니다.
즉, 일반 Application에서는 컨트롤 안됩니다.)



결과적으로 Robotium을 사용해서 Test 하기 위해서는

Application 쪽에서 두번의 Back Key 이벤트로 finish() 되는 것을 없에고 Release 하여 Test 후, 
정식 Release 배포 시, 해당 기능(두번의 back key)을 적용하여 배포판 만들어 Release 해야 할 듯합니다.






네번 째, Robotium 적용하며 발생 하는 문제에 대해서...

Robotium은 Application 이외의 Android System 영역은 Control이 되지 않습니다.

Menu > My Recording > Media 선택 > Share 버튼

Share 버튼을 누르게 되면, IntentFilter 창이 호출 되는데,

Lolipop 이전 버전에서는 Application에서 해당 IntentFilter 창을 컨트롤 할수 있었습니다.

하지만 Lolipop 버전에서는 IntentFilter 창이 활성화 되면서 Control 권한도 Android System영역으로
변경 되었는지 컨트롤 되지 않습니다. 

현재 컨트롤 할 수 있는 View를 찾아보아도 컨트롤 할수 있는 View가 나타나지 않습니다.








업무 처리하다가 메일 발신 내용을 토대로 간단히 정리 해봅니다.

이런 테스트 앱 개발보다... 일반 앱 개발이 좋은데... 내가 지금 무얼 하고 있는건지.................

에효~


Robotium을 이용하면 어설프게 만든 게임들은 쉽게 매크로프로그램을 만들수 있을듯... ㄷㄷㄷ

'Android > Libraries' 카테고리의 다른 글

UI Library  (0) 2015.09.15
[JavaMail] Java Mail API의 주요 구성 요소  (0) 2014.07.24
[JavaMail]  (0) 2014.07.24
[이미지 관리] Android Universal Image Loader  (0) 2014.07.24
Posted by 소망아기
: