【Robotium】Robotiumテストプロジェクトの作成（前編）

#概要
[前回](http://qiita.com/shinya_0911/items/7e77d647f5ff371e08d4 "【Robotium】Android UIテスティングフレームワーク Robotiumとは？")は、Robotiumについての概要や特徴について説明しました。

今回は、Androidテストプロジェクトを作成し、Robotiumを導入してみたいと思います。

今回は少し長くなるため、前編と後編に分けたいと思います。
前編：Robotiumテストプロジェクトの作成
後編：テストクラスの作成

##環境
下記環境にて進めていきます。

Eclipse　4.3（kepler）
Android SDK　4.2.2（Jelly Bean）
Robotium　5.0.1

#テスト対象となるAndroidプロジェクトの用意
テスト対象のAndroidプロジェクトを作成します。
作成するプロジェクトは、アクティビティを2つ持ち、1つ目のアクティビティから、2つ目のアクティビティへ遷移するようにします。

###１つ目のアクティビティ

```java:MainActivity.java
package com.example.testactivity;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button btn = (Button)findViewById(R.id.button1);
        btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View view) {
				Intent intent = new Intent(getApplicationContext(),
						SubActivity.class);
				startActivity(intent);
			}
		});
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}
```

```xml:activity_main.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:gravity="center_horizontal"
        android:scrollHorizontally="false"
        android:text="１つ目のActivity" />

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginTop="36dp"
        android:text="２つ目のActivityへ" />

</FrameLayout>
```

###２つ目のアクティビティ

```java:SubActivity.java
package com.example.testactivity;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class SubActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sub);
        
        Button btn = (Button)findViewById(R.id.button1);
        btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View view) {
				Intent intent = new Intent(getApplicationContext(),
						MainActivity.class);
				startActivity(intent);
			}
		});
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}
```

```xml:activity_sub.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:gravity="center_horizontal"
        android:scrollHorizontally="false"
        android:text="２つ目のActivity" />

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginTop="36dp"
        android:text="１つ目のActivityへ" />

</FrameLayout>
```

#Androidテストプロジェクトの作成
先ほど作成したAndroidプロジェクトに対する、Androidテストプロジェクトを作成します。

##プロジェクトの作成
[ファイル]＞[新規]＞[その他]を選択します。
![スクリーンショット 2014-03-08 17.23.13.png](https://qiita-image-store.s3.amazonaws.com/0/38724/63687cfa-3474-4ff1-73b1-de83644cb32d.png)

[Android]＞[Android テスト・プロジェクト]を選択し[次へ]を選択します。
![スクリーンショット 2014-03-08 17.15.26.png](https://qiita-image-store.s3.amazonaws.com/0/38724/7ad5e751-f033-44e8-db33-1c98eb213438.png)

プロジェクト名は任意ですが、ここでは、「SampleRobotiumProject」とします。
入力後、[次へ]ボタンを押下します。
![スクリーンショット 2014-03-08 17.16.03.png](https://qiita-image-store.s3.amazonaws.com/0/38724/7dd05393-926b-63f8-8a36-8962de20b698.png)

[an existing android project]選択します。
一覧から、今回テスト対象となるTestActivityプロジェクトを選択し[次へ]ボタンを押下します。
![スクリーンショット 2014-03-08 17.16.13.png](https://qiita-image-store.s3.amazonaws.com/0/38724/3100c6e1-f6da-db8e-bedd-7057d6a3d0b9.png)

ビルド・ターゲットを選択し[完了]ボタンを押下します。
![スクリーンショット 2014-03-08 17.16.22.png](https://qiita-image-store.s3.amazonaws.com/0/38724/0fc19efd-ebfc-deb0-63e9-93b9bafe497c.png)

以上でAndroidテストプロジェクトの作成が完了です。
次は作成したAndroidテストプロジェクトにRobotiumライブラリを導入します。

#Robotiumライブラリの導入
先ほど作成したAndroidテストプロジェクトにRobotiumライブラリを導入します。

##Robotiumライブラリ、javadocのダウンロード
[Robotium公式サイト](https://code.google.com/p/robotium/ "Robotium公式サイト")より、ダウンロードします。

###ライブラリのダウンロード
Robotium公式サイト左の[Feautured]＞[Downloads]＞[robotium-solo-5.0.1.jar]のリンクを選択した先からダウンロードします。

###javadocのダウンロード
Robotium公式サイト左の[Feautured]＞[Downloads]＞[robotium-solo-5.0.1-javadoc.jar]のリンクを選択した先からダウンロードします。

注）javadocは必須ではありません。

##Androidテストプロジェクトへの導入
先ほどダウンロードしたRobotiumライブラリを実際にAndroidテストプロジェクトに導入します。

###Robotiumライブラリの配置
まずはRobotiumライブラリを配置するフォルダを作成します。
パッケージ・エクスプローラのSampleRobotiumProjectを右クリック、[新規]＞[フォルダ]を選択してください。
名称は任意ですが、ここでは「RobotiumLib」とします。
![スクリーンショット 2014-03-08 17.38.31.png](https://qiita-image-store.s3.amazonaws.com/0/38724/cec00ed6-8e14-a0c0-12ac-318a1f565977.png)

フォルダを作成したら、先ほどダウンロードした「robotium-solo-5.0.1.jar」「robotium-solo-5.0.1-javadoc.jar」を作成したフォルダにコピーします。

###ビルドパス、javadocの設定
Robotiumライブラリをコピーしたら、次はビルドパスの設定です。
パッケージ・エクスプローラのSampleRobotiumProjectを右クリック、[プロパティ]を選択してください。
![スクリーンショット 2014-03-08 17.53.39.png](https://qiita-image-store.s3.amazonaws.com/0/38724/24e72b0e-b517-e62d-f1bc-669159566b75.png)

プロパティ画面にて、[Javaのビルドパス]＞[ライブラリ]＞[Jar追加]を押下します。
![スクリーンショット 2014-03-08 17.54.19.png](https://qiita-image-store.s3.amazonaws.com/0/38724/c96dce8d-314a-fd98-3235-0ac9897f4405.png)

Jarの選択画面にて、先ほど配置した「robotium-solo-5.0.1.jar」を選択し、[OK]を押下します。
![スクリーンショット 2014-03-08 17.56.16.png](https://qiita-image-store.s3.amazonaws.com/0/38724/ccbb8b85-11ee-5d6e-4dd3-70ea5720a37b.png)

追加したJarファイルの項目を展開し、[Javadocロケーション]を選択、[編集]を押下します。
![スクリーンショット 2014-03-08 17.58.06.png](https://qiita-image-store.s3.amazonaws.com/0/38724/41d87654-f760-50d3-4298-a0acb90759bb.png)

ダイアログにて、[アーカイブ内のJavadoc]＞[ワークスペース・ファイル]を選択し、[参照]を押下します。
![スクリーンショット 2014-03-08 17.58.27.png](https://qiita-image-store.s3.amazonaws.com/0/38724/05364f21-fe87-115b-ea52-414d9936e6e0.png)

Jarの選択画面にて、先ほど配置した「robotium-solo-5.0.1-javadoc.jar」を選択し、[OK]を押下します。
![スクリーンショット 2014-03-08 18.02.19.png](https://qiita-image-store.s3.amazonaws.com/0/38724/4ec1a139-688b-3635-14a3-a63dc62c5a38.png)

Javaのビルドパス画面にて、[順序およびエクスポート]を選択、一覧の「robotium-solo-5.0.1.jar」にチェックします。
![スクリーンショット 2014-03-08 18.04.27.png](https://qiita-image-store.s3.amazonaws.com/0/38724/2a0180d2-49e3-75f9-084f-ace9e5ba78a9.png)

以上で、ビルドパスの設定は完了です。

後編は、テストクラスの作成とテストプロジェクトの実行について説明します。