OVH Cloud OVH Cloud

Tests Cactus : enfer et damnation !

1 réponse
Avatar
Zouplaz
Bonjour, je continue à m'entête à voir utiliser Cactus pour les tests
unitaires et plus ça va, plus moins je comprends ce qui se passe !

Ce que je crois avoir compris :

1) Cactus crée deux instances de la classe de test : un client et un
serveur
2) Il appelle begin - beginXXX sur le client
3) Il appelle setUp - testXXX - tearDown sur le serveur
4) Il appelle endXXX - end sur le client


Ce que je constate :

1) Il crée DEUX instances clientes et UNE instance serveur (déjà, je
comprends pas pourquoi)
2) Il appelle begin - beginXXX sur chaque instance client
3) Il appelle setUp - testXXX et teadDown sur l'instance serveur
4) Il appelle endXXX - end DEUX fois sur l'instance serveur (!!!!! Yup
c'est quoi ce truc ?)


Conclusion, je comprends rien à rien et je n'arrive pas à mettre au point
le moindre test. Je ne saisi pas du tout pourquoi il y a deux clients et
surtout pourquoi endXXX est appellé côté client, surtout DEUX fois.

En plus,
- lors du deuxième appel à endXXX l'objet WebResponse (une sorte de
httpresponse) ne retourne aucun résultat textuel (pas de html produit
quoi)
- le cookie écrit avec wr.addCookie("superid","99") est null lors de
endXXX et de testXXX


Si vous avez le moindre début d'explication je suis preneur. Ca fait 5
jours que je rame sans résultat... Merci

Si dessous, un ptit copié/collé des méthodes significatives de la classe
de test. La variable instCounter est un int static incrémenté dans le
constructeur.

public class TestMessageForm extends TestCommon
{
public void beginGenerateFormAddMessage(WebRequest wr)
{
log.debug("Client - beginGenerateFormAddMessage - " +
instCounter);
wr.addParameter("module","blog");
wr.addParameter("action","addmsg");
wr.addCookie("superid","99");
}

public void endGenerateFormAddMessage(WebResponse wr)
{
log.debug("Client - endGenerateFormAddMessage - " + instCounter);

//assertTrue("Pas de réponse produite",wr.getText().length()>0);
/*
* Attendu : postback présent, action = addmsg
*/
if(wr.getText().length() > 0)
{
HtmlInspector checker = new HtmlInspector(wr.getText());
FormTag form = (FormTag)checker.findFirstNodeOfType
(FormTag.class);
assertNotNull(checker.getChildElement(form,"postback"));
TagNode f;
assertTrue(checker.getChildElement
(form,"action").getAttribute("value").equalsIgnoreCase("addmsg"));
}
else log.debug("Vide");

log.debug("Cookie = " + wr.getCookie("superid"));
}

public void testGenerateFormAddMessage() throws Exception
{
servletRun();
log.debug("Server - Empty test - " + instCounter);
}
}

Et les logs me donnent :

12:40:54,421 DEBUG TestCommon: 40 - Client -
beginGenerateFormAddMessage - 1
12:40:54,437 DEBUG TestCommon: 40 - Client -
beginGenerateFormAddMessage - 2
12:40:54,453 DEBUG TestCommon: 76 - Server - Empty test - 3
12:40:55,203 DEBUG TestCommon: 89 - Server - Run AnaemServlet
12:40:58,328 DEBUG TestCommon: 55 - Client -
endGenerateFormAddMessage - 3
12:40:58,546 DEBUG TestCommon: 71 - Client - Cookie = null
12:40:58,546 DEBUG TestCommon: 55 - Client -
endGenerateFormAddMessage - 3
12:40:58,562 DEBUG TestCommon: 69 - Client - Vide
12:40:58,562 DEBUG TestCommon: 71 - Client - Cookie = null

1 réponse

Avatar
Zouplaz
Zouplaz - :


Conclusion, je comprends rien à rien et je n'arrive pas à mettre au
point le moindre test. Je ne saisi pas du tout pourquoi il y a deux
clients et surtout pourquoi endXXX est appellé côté client, surtout
DEUX fois.



Erreur de frappe : il faut lire "pourquoi endXXX est appellé côté SERVEUR"