CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java] Problème sur le test unitaire

HaiRiA
HaiRiA
Niveau 7
03 décembre 2013 à 20:18:28

Bonsoir !

Je fais actuellement un TP de java pour l'iut.
On nous fournit le test unitaire afin de vérifier le code écrit, ce dernier me retourne une erreur :-(

Voici l'énoncé :
http://i.imgur.com/RGmJ03D.png

Mon code :
http://i.imgur.com/5rv8FXB.png

Et l'erreur du teste unitaire :
http://i.imgur.com/PrMOYgt.png

Je ne vois pas vraiment d'où viens le problème :(
Merci de votre aide :)

SuPeRHuMaR
SuPeRHuMaR
Niveau 10
03 décembre 2013 à 20:58:01

A mon avis c'est la structure de ton assert qui ne doit pas être correcte. Personnellement je n'ai jamais testé plusieurs conditions dans un assert.

Au lieu de faire :

assert(condition 1 || condition 2) : "conditions fausses"

Essaie plutôt en 2 fois :

assert(condition 1 vraie) : "condition 1 fausse";
assert(condition 2 vraie) : "condition 2 fausse";

HaiRiA
HaiRiA
Niveau 7
03 décembre 2013 à 21:12:28

Mais c'est bien une seule condition, c'est l'équivalent de :
assert nb>=0 :"Nb doit être supérieur ou égal à 0";
On peut mettre n'importe quel booléen dans une assert :(

Si on met sur deux assert, on a nb doit être supérieur à 0 et nb doit être égal à 0, les deux se contredisent :o))

SuPeRHuMaR
SuPeRHuMaR
Niveau 10
03 décembre 2013 à 21:59:49

Oui c'est vrai, je n'avais pas réfléchi. Cela dit j'aurais autre chose à te proposer, c'est parfois des erreurs cons, essaie de parenthéser ta condition (surtout quand tu utilises un opérateur logique).

HaiRiA
HaiRiA
Niveau 7
03 décembre 2013 à 22:35:51

Voici le test unitaire : http://i.imgur.com/ey1iknJ.png
Je vais changer ce que tu m'as dis pour l'instant, merci :)

MounchMan
MounchMan
Niveau 10
03 décembre 2013 à 22:45:02

Complétement hors-sujet mais c'est quoi ton éditeur pour avoir des boites comme ça ? :hap:

HaiRiA
HaiRiA
Niveau 7
03 décembre 2013 à 22:46:36

bluej

Silvermo
Silvermo
Niveau 26
03 décembre 2013 à 22:49:12

Evite les try {

} catch (Exception ex) {
assertTrue(false);
}

c'est de la mauvaise pratique et à remplacer par la présence de expected=Exception.class entre parenthèses dans l'annotation @Test

(d'ailleurs ce que tu fais, mettre plusieurs tests en une seule méthode est mauvais et tu devrais avoir une méthode par test donc plusieurs méthodes avec chacune leur annotation @Test et qui testent UNE chose

Silvermo
Silvermo
Niveau 26
03 décembre 2013 à 22:50:07

Et dans ton cas tu devrais pas catcher Exception mais bien AssertException (puisque c'est ce que provoque l'usage du mot clé assert

HaiRiA
HaiRiA
Niveau 7
03 décembre 2013 à 22:51:20

C'est pas moi qui fait le test unitaire, il est fournit dans le TP pour qu'on puisse vérifier nos méthodes, j'ai pas touché au test :-p

Silvermo
Silvermo
Niveau 26
03 décembre 2013 à 22:52:02

C'est un test unitaire pourri en tout cas (c'est pas comme ça qu'on programme les tests, merde ! ^^ )

HaiRiA
HaiRiA
Niveau 7
03 décembre 2013 à 22:54:12

Ca j'y peux rien, ça vient du prof qui fait la structure de données :p)

Silvermo
Silvermo
Niveau 26
03 décembre 2013 à 22:57:24

"D'une manière générale au passage, on utilise pas les assertions dans les méthodes publiques car on a pas la certitude que les assertions seront activées. Elles sont d'ailleurs bien souvent désactivées lors d'un passage en prod, on ne les utilise que lors du développement, et donc dans les méthodes privées/protégées."

:d) je plussoie. C'est surtout à utiliser d'ailleurs pour des trucs qui ne devraient JAMAIS arriver, et pas pour valider les paramètres

Silvermo
Silvermo
Niveau 26
03 décembre 2013 à 22:58:44

Exemple :

robert.serreLaMain(arthur);
assert arthur.estVivant() : "Je crois que robert y est allé un peu fort";

Silvermo
Silvermo
Niveau 26
03 décembre 2013 à 23:01:00

Ou encore :

asterix.boit(BoissonEnum.PotionMagique);
asterix.combat(soldatRomain);
assert asterix.estVivant() : "Je crois que la potion magique bug";

Silvermo
Silvermo
Niveau 26
03 décembre 2013 à 23:02:41

Bref, assert sert à valider que l'implémentation interne est ok, alors que les exceptions servent à prévenir ceux qui utilisent les méthodes qu'ils ont appelé avec un mauvais paramètre par exemple ou qu'ils ont effectué quelque chose d'illégal

HaiRiA
HaiRiA
Niveau 7
03 décembre 2013 à 23:15:47

Ca marche bien avec une exception ! Merci beaucoup :)
En fait, dans la plupart des méthodes dans les tp, on nous fait utiliser des asserts pour vérifier les paramètres, j'aurais du lire plus attentivement la consigne et voir ' exception ' :-p

Thanks!

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment