Espresso Testing Framework - Istruzioni per l'installazione

In questo capitolo, vediamo come installare il framework espresso, configurarlo per scrivere i test dell'espresso ed eseguirlo nella nostra applicazione Android.

Prerequisiti

Espresso è un framework di test dell'interfaccia utente per testare l'applicazione Android sviluppata in linguaggio Java / Kotlin utilizzando Android SDK. Pertanto, l'unico requisito di espresso è sviluppare l'applicazione utilizzando Android SDK in Java o Kotlin e si consiglia di avere l'ultima versione di Android Studio.

L'elenco degli elementi da configurare correttamente prima di iniziare a lavorare nel framework espresso è il seguente:

  • Installa l'ultima versione di Java JDK e configura la variabile d'ambiente JAVA_HOME.

  • Installa l'ultima versione di Android Studio (versione 3.2. O successiva).

  • Installa l'ultimo SDK Android utilizzando SDK Manager e configura la variabile d'ambiente ANDROID_HOME.

  • Installa l'ultimo Gradle Build Tool e configura la variabile d'ambiente GRADLE_HOME.

Configura EspressoTesting Framework

Inizialmente, il framework di test espresso viene fornito come parte della libreria di supporto Android. Successivamente, il team Android fornisce una nuova libreria Android, AndroidX e sposta nella libreria l'ultimo sviluppo del framework di test espresso. L'ultimo sviluppo (Android 9.0, livello API 28 o superiore) del framework di test espresso verrà eseguito nella libreria AndroidX.

Includere il framework di test espresso in un progetto è semplice come impostare il framework di test espresso come dipendenza nel file gradle dell'applicazione, app / build.gradle. La configurazione completa è la seguente,

Utilizzando la libreria di supporto 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'
}

Utilizzando la libreria 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'
}

testInstrumentationRunner in android / defaultConfig imposta la classe AndroidJUnitRunner per eseguire i test di strumentazione. La prima riga nelle dipendenze include il framework di test JUnit , la seconda riga nelle dipendenze include la libreria del test runner per eseguire i casi di test e infine la terza riga nelle dipendenze include il framework di test espresso.

Per impostazione predefinita, Android Studio imposta il framework di test espresso (libreria di supporto Android) come dipendenza durante la creazione del progetto Android e gradle scaricherà la libreria necessaria dal repository Maven. Creiamo una semplice applicazione Android Hello world e controlliamo se il framework di test espresso è configurato correttamente.

I passaggi per creare una nuova applicazione Android sono descritti di seguito:

  • Avvia Android Studio.

  • Seleziona File → Nuovo → Nuovo progetto.

  • Immettere il nome dell'applicazione (HelloWorldApp) e il dominio dell'azienda (espressosamples.tutorialspoint.com), quindi fare clic su Avanti .

Per creare Android Project,

  • Seleziona API minima come API 15: Android 4.0.3 (IceCreamSandwich) e quindi fai clic su Avanti.

Per scegliere come target i dispositivi Android,

  • Selezionare Attività vuota e quindi fare clic su Avanti .

Per aggiungere un'attività a Mobile,

  • Immettere il nome per l'attività principale e quindi fare clic su Fine .

Per configurare l'attività,

  • Una volta creato un nuovo progetto, apri il file app / build.gradle e controlla il suo contenuto. Il contenuto del file è specificato di seguito,

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'
}

L'ultima riga specifica la dipendenza del framework di test espresso. Per impostazione predefinita, la libreria di supporto Android è configurata. Possiamo riconfigurare l'applicazione per utilizzare la libreria AndroidX facendo clic su RefactorMigrate to AndroidX nel menu.

Per migrare ad Androidx,

  • Ora, l' app / build.gradle cambia come specificato di seguito,

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'
}

Ora, l'ultima riga include il framework di test espresso dalla libreria AndroidX.

Impostazioni dispositivo

Durante il test, si consiglia di disattivare l'animazione sul dispositivo Android, che viene utilizzato per il test. Ciò ridurrà le confusioni durante il controllo delle risorse inattive.

Vediamo come disabilitare l'animazione sui dispositivi Android - (Impostazioni → Opzioni sviluppatore),

  • Scala di animazione della finestra

  • Scala di animazione di transizione

  • Scala della durata dell'animatore

Se il menu Opzioni sviluppatore non è disponibile nella schermata Impostazioni , fare clic più volte su Numero build disponibile nell'opzione Informazioni sul telefono . Ciò abilita il menu Opzioni sviluppatore .