woong's

android studio testing 환경 구축 하기(1) 본문

Develop/Android

android studio testing 환경 구축 하기(1)

dlsdnd345 2016. 2. 13. 22:23

android studio testing 환경 구축 하기(1)


​android studio test 관련해서 공부할 기회가 생겨 작업을 진행 했는데 3일 꼬박 걸려

 정리 할겸 test 환경 구축에 대해서 정리해 보려 합니다 .


이번장에서는 소개 및 준비에 대해서 말씀 드리겠습니다 .



1. Junit 환경 구축

  - Jinit 은 비지니스 로직 코드를 테스팅을 도와 주는 툴 입니다 .


2. Robolectric 환경 구축

  - Robolectric 은 가상에 액티비티를 만들어서 테스트를 도와주는 툴 입니다.

  (안드로이드 기본 내장 ActivityInstrumentationTestCase2 를 사용해도 되지만 테스트 기기나 , 에뮬레이터가 필요 하므로 테스트과정에서

   불편함이 따라 올수 있을것 같습니다 . 그래서 가상액티비티를 만들어서 도와주는 로보렉트릭을 많이들 이용하는것 같습니다.)


3. jacoco coverage 환경 구축 

  - code coverage 툴 입니다 .

    자신이 작성한 테스트 코드가 어떤 코드를 커버 하였으며 , 어떤 코드를 커버하지 않았는지 표시하여 코드의 품질을 높일수 있도록

    도와 주는 툴입니다.


이렇게 진행해 보려 합니다 .


위와 같은 환경을 구축하기 전에 테스팅할 안드로이드 , java 샘플 코드가 있어야 합니다 .


샘플 코드는 액티비티 하나의 버튼 클릭을 통해 새로운 액티비티를 보여주는 코드를 작성합니다 .

 - 안드로이드 테스팅 하실분이면 위 테스트 코드는 충분히 짜실수 있다고 생각합니다 .


Android 를 테스팅 하기 위함 샘플 코드


1. MainActivity


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class MainActivity extends ActionBarActivity {
 
    private Button btnLogin;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        initLayout();
 
    }
 
    /**
     * 레이아웃 초기화
     */
    private void initLayout(){
        btnLogin = (Button)findViewById(R.id.btnLogin);
        btnLogin.setOnClickListener(mOnClickListener);
    }
 
    Button.OnClickListener mOnClickListener = new View.OnClickListener(){
 
        @Override
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this, LoginActivity.class));
        }
    };
 
}
cs


1-1. Main xml 


1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <Button
        android:id="@+id/btnLogin"
        android:text="Login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
 
</LinearLayout>
cs



2. LoginActivity


1
2
3
4
5
6
7
8
9
public class LoginActivity extends ActionBarActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
    }
 
}
cs



2-1. Login xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btnLogin"
android:text="Login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>

Junit 을 테스팅 하기위한 샘플 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Calculate {
 
 
    /**
     * 덧셈
     * @param a
     * @param b
     * @return
     */
    public int add(int a , int b){
 
        return a + b;
    }
 
    /**
     * 뺄셈
     * @param a
     * @param b
     * @return
     */
    public int minus(int a , int b){
 
        return a - b;
    }
 
}
cs



정말 간단한 코드 입니다 .

테스팅 환경을 구축 하기 위한 코드니 샘플코드는 간단한게 좋겠지요 ^^

Comments