2
1

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 3 years have passed since last update.

Espresso入門

Last updated at Posted at 2020-06-21

はじめに

AndroidでUIテストをするためには何を使うのが良いか調べて見たところ、
単一のアプリのUIテスト方法として EspressoがDeveloperGuideでも紹介されていたので、試してみました。

導入〜テスト作成まで

AndroidStudioで簡単なプログラムを作成して、それに対するUIテストを書いてみました。

が、面倒くさそう難しそうなので、書くのは大変そうですね...

いい方法がないか調べていると、DeveloperGuideにもこんなページが..

Espresso テスト レコーダーで UI テストを作成する

この方法が使えるならと..試しみました。。

SampleにAndroidStudioのプロジェクト作成で一発で作成できるLoginActivityを..

スクリーンショット 2020-06-21 12.06.50.png

出来上がるアプリはこんな感じのシンプルな画面です。

プロジェクトを作成して、Espressoを実行..

スクリーンショット 2020-06-21 11.22.14.png

アプリが起動して、IDとパスワードを入力して、ボタンをタップしてみました。
すると、以下のキャプチャのように記録されます。
(マシン性能によりそうですが、実際は結構重く、入力もすんなりできませんでした..)

スクリーンショット 2020-06-21 11.46.55.png

OKをタップするとテストクラスを出力できます。

コードはこんな風に出力されます。
テストクラスなので、実行できます。

@LargeTest
@RunWith(AndroidJUnit4::class)
class LoginActivityTest {

    @Rule
    @JvmField
    var mActivityTestRule = ActivityTestRule(LoginActivity::class.java)

    @Test
    fun loginActivityTest() {
        val appCompatEditText = onView(
            allOf(
                withId(R.id.username),
                childAtPosition(
                    allOf(
                        withId(R.id.container),
                        childAtPosition(
                            withId(android.R.id.content),
                            0
                        )
                    ),
                    0
                ),
                isDisplayed()
            )
        )
        appCompatEditText.perform(replaceText("test"), closeSoftKeyboard())

以下省略

「Add Assertion」ボタンを押せば、キャプチャのようにアサーションを追加できます。
(ダイアログもできるのですが、レイアウト位置が正しく設定されず手直しが必要です..)

スクリーンショット 2020-06-21 11.48.03.png

まとめ

ものによっては手直しが必要ですし、ボイラーコードになりがちなのでメンテナンステストもかかりそうですが、
(UIテスト自体コストも高いし..)
UIテストはコストが高いからだけで今まで避けてきたので意外とハードルは高くないのかなと思いました。

ログインやエラーハンドリングのようなそのものはあまり変わらない部分であれば導入してみるのも良いかと思いました。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?