はじめに.
RobotiumはAndroidのブラックボックステストを自動化するUIテストフレームワーク.  
シナリオを手軽にかけて導入も非常に簡単である. 老舗のテストフレームワークでもあり動作は安定している. 
本稿はRobotiumを導入したレポートである.
確認環境は次の通り.
- Robotium: 5.2.1
- Android Studio 1.0
- Mac 10.9.5
環境準備
環境準備は次のコードをgradleに追加するのみで完了.
dependencies {
    ...
    androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.2.1'
}簡単. あとはテストコードを書いていく.
サンプルコード
RobotiumではメインとなるSoloクラスをsetUpで初期化する.  
下記のコードはテスト開始時にMainActivityを起動し, テスト終了時にfinishさせる簡易なものである. 
public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {
    private Solo solo = null;
    public MainActivityTest() {
        super(MainActivity.class);
    }
    @Override
    protected void setUp() throws Exception {
        solo = new Solo(getInstrumentation(), getActivity());
        super.setUp();
    }
    @Override
    protected void tearDown() throws Exception {
        solo.finishOpenedActivities();
        super.tearDown();
    }
    public void testMainActivity() {
        // ここにシナリオを記述する
    }
}
TestCaseのそれと同じく, testメソッドにシナリオを書いていく.  
下記は次の手順をシナリオ化したもの. 
- MainActivityが起動できているかを検査
- id.buttonをクリック
- ダイアログオープンをウェイト
- ダイアログに表示されているテキストを検査
- “Yes”を押下
- 表示されるToastに表示されている
    public void testMainActivity() {
        solo.assertCurrentActivity("wrong activity", MainActivity.class);
        solo.waitForActivity(MainActivity.class);
        solo.clickOnView(solo.getCurrentActivity().findViewById(R.id.button));
        solo.waitForDialogToOpen();
        Assert.assertTrue("wrong dialog text", solo.searchText("Test"));
        solo.clickOnButton("Yes");
        Assert.assertTrue("wrong toast text", solo.searchText("Hello!"));
    }RobotiumはInstrumentationTestCaseがベースであるため, Android Testing Frameworkのそれと同じように扱える.  
普段通りAndroidTestとして実行すればRobotiumのテストが実行できる. 
以上.