Tp_Commit question2_3

Programmation Avancée

Modérateur : Douin

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

Tp_Commit question2_3

Message par GANKAMA » 28 nov. 2018 0:28

Bonsoir,
Quelqu'un à t-il une idée sur ce qui est demandé.Je ne comprend pas très bien ce qui est demandé sur cette question.


Cordialement

RENAUD
Messages : 72
Inscription : 21 sept. 2018 19:34

Re: Tp_Commit question2_3

Message par RENAUD » 28 nov. 2018 12:47

Bonjour

Moi même je butte sur l'ensemble de la question 2 (et 3 aussi)
1:
dans le testsdesvisiteurs, dans testCompositeValide :
le test ne passe pas !
g1.ajouter(new Contributeur("c",100));
assertTrue(" Ce composite est valide, revoyez CompositeValide !!!", g.accepter(new CompositeValide()));
ce n'est pas plutot g1 et pas g même si g1 a été ajouter à g avant ou alors j'ai rien compris ?
je comprend quand même même si g1 a maintenant un contributeur g n'en a pas seulement un groupe.
2:
dans public Boolean visite(GroupeDeContributeurs g)
ok je n'arrive pas à parcourir en profondeur l'ensemble d'un groupe déjà mais je vérifie solde >=0 et justement si y'a un contributeur (c instanceof contributeur) pas un groupe !

rousset
Messages : 35
Inscription : 30 sept. 2018 9:23

Re: Tp_Commit question2_3

Message par rousset » 28 nov. 2018 19:24

Hello,

En espérant que ça dépanne.
Faut supprimer/commenter la ligne "fail...." de "public void testACompleter." Ensuite tu crées une instance de chaque visiteur "DebitMax, CompositeValide, SansDoublon" et puis tu écris les tests. Apparemment ce que JNews vérifie c'est si tu crées au moins une instance de chaque (suite au cours sur l'injection, je me dis que JNews fait peut être plus complexe ;) ) visiteur : ce que je veux dire c'est que tu n'as pas besoin d'écrire une méthode de test par visiteur, tu peux tout faire dans "public void testACompleter.".

testCompositeValide
Tu as 2 groupes g et g1, vides donc non valides. Tu ajoutes g1 dans g, le tout est toujours non valide. Tu ajoutes un élément dans g1, et du coup "g" a bien un élément valide.

public Boolean visite(GroupeDeContributeurs g)
Alors attention, ce n'est pas marqué dans l'énoncé mais il ne faut pas utiliser "instanceof" (tu auras une erreur JNews). Faut que tu te serves de getChildren().

Au passage, j'avais trouvé des éléments de réponse déjà dans le forum, en cherchant à "commit" hein.., y en a même très récent ;)...,
Cordialement.
Nicolas

RENAUD
Messages : 72
Inscription : 21 sept. 2018 19:34

Re: Tp_Commit question2_3

Message par RENAUD » 29 nov. 2018 14:00

tous les tests junit sont ok je n'ai pas soumis à jnews
oui je parlais uniquement de testCompositeValide et les autres
en effet j'ai utilisé instanceof dans visite(groupe...) et fait appel recursif à visite je verrais plus tard avec getchildren() car...

je suis passé à la question 3 par manque de temps :
je pensais avoir assez bien regardé Memento au tp5 mais là je m'énerve dessus je met des system.out partout mais je n'y arrive pas :
- setState(Cotisant c) de Memento et restitution est trompeur !
- si je comprend TransactionDebit serait "originator" ?
- quant à endTransaction apart vider ou mettre le gardien à null par ex !
- en fait il me semble que c'est dans AbstractTransaction debit que tout est déclenché si... ?
mon problème je pense que tout simplement je passe le Groupe donc le debit sur le solde global passe
- je ne vois pas comment utiliser des visiteurs dans Memento et quel est leur intéret ?

un indice ?
sinon je vais revoir l'organisation et traitement, la cinématique des appels

Répondre

Qui est en ligne ?

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