a propos de la reflexivité java

16 views
Skip to first unread message

yosri naghmouchi

unread,
Dec 10, 2010, 11:26:10 AM12/10/10
to TeeJUG
bonsoir ,
j ai une class abstraite "AbstractService" ou j ai crée une méthode
private setCriterion() , bon je voulais testé cette methode pour la
couverture de test .j ai eu un message d erreur
"NoSuchMethodException" cad que ma methode de test n arrive pas a
accéder a la methode .la class est générique voici ma methode de test
******************************************************************************************
@Test
public void testsetCriterion() {
Logger log=Logger.getLogger(AbstractServiceTest.class);
StsCriterionOperator typec = null;
StsCriterion dtocriterion = new StsCriterion(typec);
MockManager bColumns = new MockManager();
StsCriteria<MockManager.Columns> modelCriteria = new
StsCriteria<MockManager.Columns>(MockManager.Columns.class);

try {
@SuppressWarnings("unchecked")
Class
c=Class.forName("com.inetpsa.kor.arctec.services.AbstractService");
@SuppressWarnings("unchecked")
Class[]
type={StsCriterion.class,MockManager.class,StsCriteria.class};

Method method = c.getClass().getDeclaredMethod("setCriterion",type);
// method.setAccessible(true);
Assert.assertTrue(dtocriterion.equals("=")) ;
dtocriterion.setNegate(true);
Assert.assertEquals(dtocriterion,
method.invoke(service,dtocriterion,bColumns,modelCriteria));
dtocriterion.setNegate(false);
Assert.assertEquals(dtocriterion,
method.invoke(service,dtocriterion,bColumns,modelCriteria));
} catch (SecurityException e) {
Assert.fail("SecurityException " + e);
} catch (NoSuchMethodException e) {

log.trace("NoSuchMethodException"+e.getMessage());
// Assert.fail("NoSuchMethodException " + e);
} catch (IllegalArgumentException e) {
Assert.fail("IllegalArgumentException accessing " + e);
} catch (IllegalAccessException e) {
Assert.fail("IllegalAccessException accessing " + e);
} catch (InvocationTargetException e) {
Assert.fail("InvocationTargetException accessing " + e);
} catch (ClassNotFoundException e) {
log.trace("NoSuchClassException"+e.getMessage());
}
}
************************************************************************************************

Foued Elguenbri

unread,
Dec 22, 2010, 9:38:54 AM12/22/10
to tee...@googlegroups.com
Tu es entrain d'accéder à une méthode privée

Par quelle logique veux tu que ce soit possible?

D'autre part, quand on reporte un bug on doit mettre le stacktrace complet.
----------------------------------------------
Cordialement.
Foued ElGuenbri



--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes TeeJUG.
Pour envoyer un message à ce groupe, adressez un e-mail à tee...@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse teejug+un...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/teejug?hl=fr


yosri naghmouchi

unread,
Dec 23, 2010, 3:29:50 AM12/23/10
to tee...@googlegroups.com
Bonjour Foued ElGuenbri,
merci pour ton message , je confirme que c est possible d accéder aux méthodes privées de la mème logique que j ai adopté ; parce que j ai déja  résous ce probleme mais il faut juste faire attention au parmetretypes de chaque methode privé et tous ce passera bien.

<-  Best regards ->
       -=NY=-

Foued Elguenbri

unread,
Dec 29, 2010, 9:33:25 AM12/29/10
to tee...@googlegroups.com
tu es entrain de me dire qu'on peut accéder ,par réflexion, à une méthode privé en dehors de cet objet?
----------------------------------------------
Cordialement.
Foued ElGuenbri

kamel mahdi

unread,
Dec 30, 2010, 5:22:19 AM12/30/10
to tee...@googlegroups.com
Je confirme qu'on peut bien le faire.
 
Un peut de fair play.

2010/12/29 Foued Elguenbri <elguenb...@gmail.com>



--
--Kamel MAHDI.

Reply all
Reply to author
Forward
0 new messages