안녕하세요. 오늘은 android junit 사용하기 입니다.

이곳을 클릭하시면 사용방법이 자세히 나와 있고 이 글에서는 그 후에 필요한 내용에 대해 블로깅하고 있습니다.

그 밖에 안드로이드펍에서 google의 문서를 번역해 놓았네요. 여기 클릭해주세요.

제 글은 Android JUnit 중 Activity의 unit 테스트를 하기 위함입니다. 위 링크들을 보시면 button 같은 객체들을 테스트하는 방법이 나와있습니다. 제 프로그램 중 메인 Activity의 onCreate 함수에서 생성된 초기화 데이터들(xml을 파싱해서 얻는)을 저장하는 부분이 있습니다. 이때, xml 파서를 직접만들었기 떄문에 정확한 데이터 검증이 필요하게 됩니다.

Android JUnit의 actvitiy를 테스트하기 위해선 ActivityInstrumentationTestCase2 클래스를 상속받아야 합니다. (google의 문서에 나와있습니다.)

Android JUnit 테스트 프로젝트를 만든 후 JUnit Test Case를 만들때 superclass 를 ActivityInstrumentationTestCase2를 지정합니다.

일단 전체 코드를 한번 보겠습니다.

MyClassActivity.java

package com.myclass;

import android.app.Activity;
import android.os.Bundle;

public class MyClassActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

myClassTest.java

import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import com.myclass.MyClassActivity;

public class myClassTest extends ActivityInstrumentationTestCase2< MyClassActivity > {
	
	MyClassActivity myClassActivity;
	
	public myClassTest() { // 생성자 함수가 꼭 필요합니다.
		super( MyClassActivity.class );
	}

	@Override
	protected void setUp() throws Exception { // 각각의 테스트함수들이 실행되기 전에 실행되는 함수
		super.setUp();
		
		setActivityInitialTouchMode( false );
		myClassActivity = getActivity(); // 생성된 activity의 레퍼런스를 갖고옵니다.
		Log.d( "MyClassTest", "setUp()" );
	}

	@Override
	protected void tearDown() throws Exception { // 각각의 테스트함수들이 종료되기 전에 실행되는 함수
		// TODO Auto-generated method stub
		super.tearDown();
		Log.d( "MyClassTest", "tearDown()" );
	}
	
	public void testFunc1() {
		Log.d( "MyClassTest", "testFunc1()" );
	}
}


test case 를 처음 생성하시면 <T> 가 생기는데 T를 테스트하고 싶은 클래스로 바꿔 주세요.

그 후 생성자 함수를 만들어야 합니다. 생성자 함수는 위 코드에 나와있으니 참조하세요. 위 코드가 Activity TestCase class의 기본코드 입니다. setUp(), tearDown() 함수를 잘 쓰셔서 이용하면 될 것 같습니다.

참조해야 할 부분은 setActivityInitialTouchMode( false ) 부분인데요. 터치를 끄는 기능을 합니다. 아직 위 코드에 대한 필요성은 느끼지 못하고 있으나, 구글의 표준문서에 나와있네요. 

위 코드를 실행해 보시면 testFunc1() 함수가 실행이되고 아래 그림과 같은 결과를 확인 할 수 있습니다.


Log 화면


Test 결과화면



Bloger : molatk.net

3일차가...... 지브롤터던가.......

암튼 일단 고!

슬슬.... 너무 오래되서 기억이 가물가물하다...
하지만 간지나는 멋진 처롼햄ㅋㅋ

저기가...  말라가에서 론다를 가던 기차역이던가...
그라나다에서 말라가를 가던 역이던가... 이제 정말... 기억이 안난다.ㅠㅠ



쳐란햄에 비해... 난..............참 이게 뭐냐ㅋㅋㅋ
완전 폐인꼴이다 =_= 




아무튼 꼭 가고싶었던 지브롤터를 향해 고고고!



지브롤터는 위에 표시된 것처럼 작은 해협에 위치해있다.
지브롤터에 가면 반대편에 있는 아프리카 대륙이 보인다 +_+
정말 대박이지...  
게다가 지브롤터는 스페인령이 아니라 영국령!이다.
참 재미있는 곳이다.
지브롤터 해협은 내 나이대 친구들(대항해시대 게임을 즐긴 세대들)은 다 너무나 잘 아는 곳이다.
왜냐면 저곳 근처에 세우타항이 위치해있기 때문이다. 



잘 보이지 않지만....
저 멀리 구름 아래 보면 산이 보이는데...
저곳이 아프리카다 +_+
너무 멋지지 않음?? 아 감동감동 

지브롤터는 신기하고 재밌는 것들이 참 많은 곳인데
그 중 한가지는 아래 사진에서 보면 도로와 여객기 활주로를 같이 쓴다는 사실!



지브롤터에는 산이 있는데 그곳에는 많은 원슝이들이 살고있다.
이 원슝이들이 내 가방에 두번이나 달라붙고....(관광객들이 보통 가방에 먹을 것을 넣고 다닌다는 것을 알고 있는 원슝이들) 내가 손에 들고 있는 먹이를 낚아 채가고 ㅡㅅㅡ
정말 놀랐다... 


쩌~~ 멀리 보이는 지브롤터 산

내가 손에 들고 있던 것을 빼앗아 먹고 있는 원슝이 ㅡㅅㅡ

새끼도 품고

과일도 먹고

털도 골라주고


재미있었던 지브롤터
난 너무 신나서 ㅡㅅㅡ 방방 뛰어다녔더니 땀이 줄줄 나더라(꽤 덥기도 했음!)
우리끼리 사진도 찍고 경치도 감상하고... 


뭐보냐 =_=;

원슝이랑 인사도 했지만... 까였다



셋이 같이 사진 찍을때(이때 한 주민에게 여러번 찍힘을 당했지?ㅋ)
무슨 노래를 듣고 있었는데
나중에 이 노래를 다시 들으면 우리가 이곳에 있었던 것을 기억할 것이라고 이야기 했는데 
정작 노래가 기억이 안나고 그 상황만 기억난다.

형들과 함께 했던 지브롤터 너무너무 행복했다  




Bloger: moltak.net


'날 살아가게 하는 것들 > 여행' 카테고리의 다른 글

Spain 02일차 : 그라나다  (1) 2012.03.11
Spain 01일차 02 : 인천, 마드리드  (0) 2012.03.04
Spain 01일차 01 : 인천, 마드리드  (0) 2012.03.03
Spain Jan-2012 Route  (0) 2012.03.03
사실 이런것들이 얼마나 통할지 모르겠다.
현실과 이론은 항상 정확히 일치하지는 않으니
하지만 아래 링크에는 중요한 말들이 많이 포함되어있다.

http://blog.naver.com/dhow88?Redirect=Log&logNo=40018219360 

1. 끊임없이 이동한다. (성을 짓지 말라)
2. 빠른 속도(fast fail을 말하는 것일까)
3. 모든 이익의 공동 분배
4. 정보화


bloger: moltak.net 

'scrap' 카테고리의 다른 글

말라리아를 진단하는 스마트폰 이야기  (0) 2012.03.14
VMWare WinDBG Kernel Debugging 설정  (0) 2010.05.08
방화벽 정책에 관하여  (0) 2010.04.29
방화벽 정책(예)  (0) 2010.04.29
방화벽 정책  (0) 2010.04.29

+ Recent posts