Methode "fail"

Programmation Avancée

Modérateur : Douin

GANKAMA
Messages : 64
Inscription : 26 oct. 2017 16:51

Methode "fail"

Message par GANKAMA » 27 nov. 2018 22:48

Bonsoir,

J'ai encore du mal avec la méthode junit "fail".Voici deux exemple d'utilisation de cette méthode dans le tp commit:

try{
Cotisant c = new Contributeur("a",-100);
fail("la somme allouée lors de la création ne peut être négative ???");
}catch(Exception e){
}
Contributeur c = new Contributeur("a",100);
assertTrue(" solde erroné ??? ", c.solde()==100);
final int val = 30;
try{
c.debit(val);
}catch(Exception e){
fail(" aucune exception n'est attendue ici !");
}

Dans ces deux cas je comprend pas pourquoi veut-on forcer le test à échouer ?

Cordialement

Tapio
Messages : 9
Inscription : 20 oct. 2018 17:09

Re: Methode "fail"

Message par Tapio » 28 nov. 2018 15:33

Bonjour,

De ce que j'ai compris, la méthode fail est utilisée dans un try catch.
Si le fail est dans le try, cela veut dire qu'on s'attend à ce qu'une exception soit levée AVANT d'arriver à ce fail, si ce n'est pas le cas, c'est que l'exception n'est pas correctement levée.

Si le fail est dans le catch, il ne faut pas qu'il y ait d'exceptions levées.

jeff.prevot
Messages : 31
Inscription : 02 mars 2013 21:19

Re: Methode "fail"

Message par jeff.prevot » 03 déc. 2018 19:23

bonsoir, c'est l'idée oui.
fail(String unMessageFacultatif) permet de faire planter un test volontairement.
Si, lors de l'execution du code, cetteméthode est appelée, alors le test aura échoué.

Dans le cas ici, effectivement, on désire tester qu'un exception est bien lancée lors de l'execution de
Cotisant c = new Contributeur("a",-100);
et donc passer dans le catch vide.
nb : avoir un catch vide n'est pas une bonne pratique du tout, mais pédagogiquement, ca arrange tout le monde.
Si aucune éexception n'avait été jetée, laors la méthode fail aurait à son tour été executée, et le test aurait échoué.

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité