Espresso TestingFramework-セットアップ手順

この章では、espressoフレームワークをインストールし、espressoテストを記述して、Androidアプリケーションで実行するように構成する方法を理解しましょう。

前提条件

Espressoは、AndroidSDKを使用してJava / Kotlin言語で開発されたAndroidアプリケーションをテストするためのユーザーインターフェイステストフレームワークです。したがって、espressoの唯一の要件は、JavaまたはKotlinのいずれかでAndroid SDKを使用してアプリケーションを開発することであり、最新のAndroidStudioを使用することをお勧めします。

エスプレッソフレームワークでの作業を開始する前に適切に構成する必要のあるアイテムのリストは次のとおりです。

  • 最新のJavaJDKをインストールし、JAVA_HOME環境変数を構成します。

  • 最新のAndroidStudio(バージョン3.2以降)をインストールします。

  • SDKManagerを使用して最新のAndroidSDKをインストールし、ANDROID_HOME環境変数を構成します。

  • 最新のGradleビルドツールをインストールし、GRADLE_HOME環境変数を構成します。

EspressoTestingフレームワークを構成する

当初、エスプレッソテストフレームワークはAndroidサポートライブラリの一部として提供されています。その後、Androidチームは新しいAndroidライブラリAndroidXを提供し、最新のエスプレッソテストフレームワーク開発をライブラリに移動します。エスプレッソテストフレームワークの最新の開発(Android 9.0、APIレベル28以降)は、AndroidXライブラリで行われます。

プロジェクトにエスプレッソテストフレームワークを含めるのは、アプリケーションgradleファイルapp /build.gradleの依存関係としてエスプレッソテストフレームワークを設定するのと同じくらい簡単です。完全な構成は次のとおりです。

Androidサポートライブラリを使用して、

android {
   defaultConfig {
      testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
   }
}
dependencies {
   testImplementation 'junit:junit:4.12'
   androidTestImplementation 'com.android.support.test:runner:1.0.2'
   androidTestImplementation 'com.android.support.test.espresso:espressocore:3.0.2'
}

AndroidXライブラリを使用して、

android {
   defaultConfig {
      testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
   }
}
dependencies {
   testImplementation 'junit:junit:4.12'
   androidTestImplementation 'com.androidx.test:runner:1.0.2'
   androidTestImplementation 'com.androidx.espresso:espresso-core:3.0.2'
}

android / defaultConfigのtestInstrumentationRunnerは、インストルメンテーションテストを実行するようにAndroidJUnitRunnerクラスを設定します。最初の行依存関係が含まJUnitのテストフレームワークを、第二のライン依存性がテストケースを実行するためのテストランナーライブラリを含み、最終的に第三のライン依存性がエスプレッソテストフレームワークを含みます。

デフォルトでは、AndroidスタジオはAndroidプロジェクトの作成中に、エスプレッソテストフレームワーク(Androidサポートライブラリ)を依存関係として設定し、gradleは必要なライブラリをMavenリポジトリからダウンロードします。簡単なHelloworld androidアプリケーションを作成し、エスプレッソテストフレームワークが正しく構成されているかどうかを確認しましょう。

新しいAndroidアプリケーションを作成する手順を以下に説明します-

  • AndroidStudioを起動します。

  • 「ファイル」→「新規」→「新規プロジェクト」を選択します。

  • 入力したアプリケーション名(がHelloWorldApp)と会社のドメイン(espressosamples.tutorialspoint.com)をしてからクリックし、次へを

Androidプロジェクトを作成するには、

  • API 15:Android 4.0.3(IceCreamSandwich)として最小APIを選択し、[次へ]をクリックします。

Androidデバイスをターゲットにするには、

  • [空のアクティビティ]を選択し、[次へ]をクリックします。

モバイルにアクティビティを追加するには、

  • メインアクティビティの名前を入力し、[完了]をクリックします。

アクティビティを構成するには、

  • 新しいプロジェクトが作成されたら、app /build.gradleファイルを開いてその内容を確認します。ファイルの内容は以下のとおりです。

apply plugin: 'com.android.application'
android {
   compileSdkVersion 28
   defaultConfig {
      applicationId "com.tutorialspoint.espressosamples.helloworldapp"
      minSdkVersion 15
      targetSdkVersion 28
      versionCode 1
      versionName "1.0"
      testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
   }
   buildTypes {
      release {
         minifyEnabled false
         proguardFiles getDefaultProguardFile('proguard-android.txt'),    'proguard-rules.pro'
      }
   }
}
dependencies {
   implementation fileTree(dir: 'libs', include: ['*.jar'])
   implementation 'com.android.support:appcompat-v7:28.0.0'
   implementation 'com.android.support.constraint:constraint-layout:1.1.3'
   testImplementation 'junit:junit:4.12'
   androidTestImplementation 'com.android.support.test:runner:1.0.2'
   androidTestImplementation 'com.android.support.test.espresso:espressocore:3.0.2'
}

最後の行は、エスプレッソテストフレームワークの依存関係を指定します。デフォルトでは、Androidサポートライブラリが構成されています。メニューの[リファクタリング] → [ AndroidXへの移行]をクリックして、AndroidXライブラリを使用するようにアプリケーションを再構成できます。

Androidxに移行するには、

  • これで、app /build.gradleが以下のように変更されます。

apply plugin: 'com.android.application'
android {
   compileSdkVersion 28
   defaultConfig {
      applicationId "com.tutorialspoint.espressosamples.helloworldapp"
      minSdkVersion 15
      targetSdkVersion 28
      versionCode 1
      versionName "1.0"
      testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
   }
   buildTypes {
      release {
         minifyEnabled false
         proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      }
   }
}
dependencies {
   implementation fileTree(dir: 'libs', include: ['*.jar'])
   implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
   implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'
   testImplementation 'junit:junit:4.12'
   androidTestImplementation 'androidx.test:runner:1.1.1'
   androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}

最後の行には、AndroidXライブラリのエスプレッソテストフレームワークが含まれています。

デバイスの設定

テスト中は、テストに使用されるAndroidデバイスのアニメーションをオフにすることをお勧めします。これにより、理想的なリソースをチェックする際の混乱が軽減されます。

Androidデバイスでアニメーションを無効にする方法を見てみましょう–([設定]→[開発者向けオプション)]、

  • ウィンドウアニメーションスケール

  • トランジションアニメーションスケール

  • アニメーターの継続時間スケール

場合は開発者向けオプションのメニューがで使用できない設定画面、クリックビルド番号は内部で利用可能な電話についてオプションの数倍。これにより、開発者向けオプションメニューが有効になります。