[Android] Espresso : Test unitaire OK mais suite de test fail

a marqué ce sujet comme résolu.

Bonjour,

J’ai créé des tests pour Android avec Espresso. Le problème :

  • Quand je lance un test, il est OK

  • Quand je lance tous les tests de la classe de test, le premier est OK mais les autres échouent aléatoirement

Ma classe de test :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@RunWith(AndroidJUnit4.class)

public class InstrumentationTests extends ActivityInstrumentationTestCase2<MainActivity> {

public InstrumentationTests(){
    super(MainActivity.class);
}

protected MainActivity mActivity;

@Override
@Before
public void setUp() throws Exception {
    super.setUp();
    injectInstrumentation(InstrumentationRegistry.getInstrumentation());
    mActivity = getActivity();
}

@Test
    public void test1() {
}

@Test
    public void test2() {
}

}

Je ne sais pas si c’est important, mais dans le onCreate de MainActivity, je me connecte à une base de données (via l’API "parse" en utilisant https://www.back4app.com/ )

Merci d’avance pour vos solutions et n’hésitez pas à me demander si vous avez besoin de plus de précision :)

Espresso ne me sort aucune erreur en particulier, je fais différentes vérification lors de mon test et la méthode "fail" est appelé.

Je m’explique :

  • Dans le onCreate du MainActivity je me connecte à la BDD

  • Quand je clique sur un bouton, je veux récupérer les 50 premiers éléments de ma BDD (il y a largement assez d’élément pour être sûr que ça ne pose aucun soucis)

  • Je vérifie qu’il y ait bien 50 éléments chargés sauf qu’en réalité il n’y en a que 48 ou 49 (ça dépends des fois !). A ce moment là j’appelle la méthode "fail" et ça fait échouer le test

Etant donné que ce test n’échoue jamais quand je le lance individuellement, mais 9 fois sur 10 quand il est joué après un autre test, je suis certain que le code testé est correcte et qu’il s’agit d’un faux négatif.

Si je n’ai aucune solution et que tu penses que l’utilisation d’un mock pourra résoudre le problème, je me pencherai dessus. Mais ne sachant pas en créer un, et surtout car ce problème m’intrigue, je préférerai m’en passer pour le moment.

Non aucun élément de la BDD (ni ailleurs) n’est supprimé. Il s’agit d’une application qui va cherché des String dans la BDD pour ensuite les afficher à l’utilisateur.

Si ça peut t’aider, c’est pour cette application que je créée des tests : https://play.google.com/store/apps/details?id=com.savoirsenpoche

Quand tu cliques sur le bouton "Commencer" de la page d’accueil, ça va charger 50 savoirs pour que tu puisses les lire

Le premier test va simplement cliquer sur le bouton "Commencer", tester que le swipe pour passer au savoir suivant fonctionne, et se terminer. Les tests d’après échouent aléatoirement.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte