Recherche…


Introduction

Le test unitaire consiste à prendre un morceau de code et à le tester indépendamment, sans aucune autre dépendance ou partie du système (par exemple la base de données).

Robolectric est un framework de test unitaire qui défigure le jar Android SDK pour que vous puissiez tester le développement de votre application Android. Les tests s'exécutent à l'intérieur de la JVM sur votre poste de travail en quelques secondes.

Les combiner vous permet d'effectuer des tests rapides sur le JVN en utilisant toujours les API Android.

Test Robolectric

@RunWith(RobolectricTestRunner.class)
public class MyActivityTest {

  @Test
  public void clickingButton_shouldChangeResultsViewText() throws Exception {
    MyActivity activity = Robolectric.setupActivity(MyActivity.class);

    Button button = (Button) activity.findViewById(R.id.button);
    TextView results = (TextView) activity.findViewById(R.id.results);

    button.performClick();
    assertThat(results.getText().toString()).isEqualTo("Robolectric Rocks!");
  }
}

Configuration

Pour configurer la méthode robotique, ajoutez @Config annotation @Config à une classe ou à une méthode de test.

Exécuter avec une classe d'application personnalisée

@RunWith(RobolectricTestRunner.class)
@Config(application = MyApplication.class)
public final class MyTest {
}

Définir le SDK cible

@RunWith(RobolectricTestRunner.class)
@Config(sdk = Build.VERSION_CODES.LOLLIPOP)
public final class MyTest {
}

Exécuter avec un manifeste personnalisé

Une fois spécifié, Robolectric ressemblera au répertoire en cours. La valeur par défaut est AndroidManifest.xml

Les ressources et les actifs seront chargés par rapport au manifeste.

@RunWith(RobolectricTestRunner.class)
@Config(manifest = "path/AndroidManifest.xml")
public final class MyTest {
}

Utilisez des qualificatifs

Des qualificatifs possibles peuvent être trouvés dans les documents Android .

@RunWith(RobolectricTestRunner.class)
public final class MyTest {

    @Config(qualifiers = "sw600dp")
    public void testForTablet() {
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow