3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Androidでユニットテストを始めるメモ1

Posted at

今の時代テストを書いて、CDしないといけないよねって雰囲気があるので、勉強してみます。

https://developer.android.com/training/testing/ui-testing/espresso-testing.html
と、言いつつもこのページを読んで燃え尽きました。

インストール

新規でつくると最新のAndroidStudioなら、プリセット通りで動きます。便利な時代になりました。
既存の場合は以下を追加すればできるかと思います。

dependencies {
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
}

テストファイルをつくるときは、プリセット通りにやる場合はandroidTestディレクトリ配下につくります。

core

基本的なView(TextViewとかImageView)はonViewで、AdapterView(ListViewとかGridView)はonDataで操作を行います。

以下の例の場合だと、my_viewに対して、clickを行い、my_viewが表示されているか判定を行います。

onView(withId(R.id.my_view))            // withId(R.id.my_view) is a ViewMatcher
        .perform(click())               // click() is a ViewAction
        .check(matches(isDisplayed())); // matches(isDisplayed()) is a ViewAssertion

Viewに対しての操作の種類は"Performing Actions"の項に書いています。
matcherはこちらのリファレンスを見てください。

intents

intentを投げることもできます。
これによりextraで別画面に何かしらのデータを送ることができます。

build.gradle
dependencies {
    // core -> intents
    androidTestCompile('com.android.support.test.espresso:espresso-intents:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
}

webview

webviewのテストもできるみたいです。
googleのsample
https://github.com/googlesamples/android-testing/tree/master/ui/espresso/WebBasicSample

Elementを指定して、いくつかのアクションをすることができるので、テストをすることができます。

build.gradle
dependencies {
    // core -> web
    androidTestCompile('com.android.support.test.espresso:espresso-web:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
}

おわりに

結構簡単にできますね。
ただ、基本的にUIテストはユーザーの入力に対して、何かしらの出力をするときに使うのであって、画面の遷移とか切り替わるとかで使う必要はなさそうですね。
使う機会があまり思い浮かばない。サンプルがもっと転がってるといいのですが。

あと、そもそもesspressoって、CDに対応してるんでしょうか。。。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?