0
2

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 1 year has passed since last update.

EspressoのUIテストでアクティビティを開始する

Last updated at Posted at 2023-03-11

初めに

UIテストは書いたことがなかったので、右も左もわからない状態です
とりあえず、動いたので記事に書いてみます

Activityの起動

テストを書き始めようとしましたが、Activityの起動方法がわからない…
アプリが起動して自動でUIを操作してテストしてくれる というイメージでしたが、画面に何も表示されずテストが停止していました。

Activityを起動するにはandroidTestと書かれているフォルダ内を見て、

@RunWith(AndroidJUnit4::class)
class FeatureTest {

    val mActivityRule = ActivityScenarioRule(MainActivity::class.java)
    @Rule get

}

とテストを実行するクラス内に記述しました
これを書くことで各テストの関数実行時にActivityを起動してくれるようになりました

Baristaを導入

素のEspressoではテストコードの記述が面倒なようなので、楽に記述できるBaristaというライブラリを導入しました

build.gradleに以下dependenciesを追記

dependencies {

    androidTestImplementation('com.adevinta.android:barista:4.2.0') {
        exclude group: 'org.jetbrains.kotlin'
    }
}

これで特定のViewをクリックしたいとき、

clickOn(R.id.button)

のようにIDを指定して簡単にクリック操作を記述できます

Baristaのリポジトリ:

テスト関数を書く

実際にUIの操作などを書いていきます

麻雀の点数計算をするアプリを作っていたので、SpinnerやSwitch、ボタンのクリック操作を記述。
assertDisplayedでTextViewに表示される文字列をチェックしています

@RunWith(AndroidJUnit4::class)
class FeatureTest {

    val mActivityRule = ActivityScenarioRule(MainActivity::class.java)
    @Rule get

    @Test
    fun show_tsumo_child_3fann30fu_result(){
        clickRadioButtonItem(R.id.calculateSwtichGroup, R.id.tsumoSwitch) // Switchをクリック

        clickSpinnerItem(R.id.fannSpinner, 2) // Spinnerで0から数えて2番目のアイテムをクリック
        clickSpinnerItem(R.id.fuSpinner, 2)
        clickOn(R.id.resultButton) // 指定のボタンをクリック

        assertDisplayed(R.id.resultText, "1000 - 2000") // TextViewに表示される文字列をチェック
    }
}

こうすることでテスト実行時にアプリが起動し、自動で操作を行い結果をテストできました

ただ、R.idでidを指定する際にUnresolved referenceが出ており、補完などもできませんでした、なぜ…?

終わり

Espressoはほぼ書いたことがないため、この書き方であっているか自信がありません
ActivityScenarioRuleでいろいろできそうですが、どう使うかはまだピンときていません
とりあえず動いたので、使いながら確認していきます…

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?