Bonjour,
suite à une autre discussion qui a dérivé, j'aurais aimé savoir
comment vous faites vos tests unitaires, avec quoi, quels outils
et quelle méthodologie ?
Merci d'avance,
Marc Boyer
Bonjour,
suite à une autre discussion qui a dérivé, j'aurais aimé savoir
comment vous faites vos tests unitaires, avec quoi, quels outils
et quelle méthodologie ?
Merci d'avance,
Marc Boyer
Bonjour,
suite à une autre discussion qui a dérivé, j'aurais aimé savoir
comment vous faites vos tests unitaires, avec quoi, quels outils
et quelle méthodologie ?
Merci d'avance,
Marc Boyer
Je derive de TestCase pour les classes de test et j'utilise TestSuite
pour les grouper en suites de tests.
TestCase fourni deux methodes de run:
- runTest(const char *name).
execute *un* test de la classe de test base sur son nom
- run(void)
execute tous les tests de la classe de test, c'est a dire les
methodes de la classe dont le nom commence par "test".
Les deux methodes utilisent la reflection pour trouver les methodes de
la classe de test qui derive de TestCase et retournent un TestResult
(une sorte de rapport).
L'interet c'est que TestCase bloque les exceptions et fait un rapport
(TestResult et TestFailure) sur quel test+condition+file+line il s'est
arrete. Dans le cas d'une TestSuite, un test stoppe les tests de la
classe en cours mais ne stoppe pas toute la suite.
Je derive de TestCase pour les classes de test et j'utilise TestSuite
pour les grouper en suites de tests.
TestCase fourni deux methodes de run:
- runTest(const char *name).
execute *un* test de la classe de test base sur son nom
- run(void)
execute tous les tests de la classe de test, c'est a dire les
methodes de la classe dont le nom commence par "test".
Les deux methodes utilisent la reflection pour trouver les methodes de
la classe de test qui derive de TestCase et retournent un TestResult
(une sorte de rapport).
L'interet c'est que TestCase bloque les exceptions et fait un rapport
(TestResult et TestFailure) sur quel test+condition+file+line il s'est
arrete. Dans le cas d'une TestSuite, un test stoppe les tests de la
classe en cours mais ne stoppe pas toute la suite.
Je derive de TestCase pour les classes de test et j'utilise TestSuite
pour les grouper en suites de tests.
TestCase fourni deux methodes de run:
- runTest(const char *name).
execute *un* test de la classe de test base sur son nom
- run(void)
execute tous les tests de la classe de test, c'est a dire les
methodes de la classe dont le nom commence par "test".
Les deux methodes utilisent la reflection pour trouver les methodes de
la classe de test qui derive de TestCase et retournent un TestResult
(une sorte de rapport).
L'interet c'est que TestCase bloque les exceptions et fait un rapport
(TestResult et TestFailure) sur quel test+condition+file+line il s'est
arrete. Dans le cas d'une TestSuite, un test stoppe les tests de la
classe en cours mais ne stoppe pas toute la suite.
Marc Boyer wrote:Donc ça, ça sert à lancer tous les tests de la classe de test.
Mais les tests de la classe de tests, tu les écris à la main
individuellement ?
On doit toujours ecrire les tests a la main. Tu n'es pas un familier des
unit tests?
Les XTest (remplace X par une lettre designant le langage)
ne propose qu'un "framework" pour te faciliter l'ecriture de tests et de
suite de tests. Comment veux-tu qu'il sache ce que tu veux tester?
Tu as setup pour definir un standard de configuration d'entree dans tous
les tests de la classe de test (celle qui derive de TestCase), cleanup
(tearDown en Java je crois) pour nettoyer tout ce que le dernier test
execute a pu laisser comme ressources non liberees et testAssert pour
valider une condition dans ton test.
Donc:
testAssert = test une condition dans un test,e.g. testAssert(s != NULL)
test unitaire = methode qui teste une fonctionalite,e.g. testStringCat()
TestCase = groupe de test unitaire, e.g. TestString : TestCase
TestSuite = suite de groupe de test, e.g. TestString, TestArray
dans OOC, derive de TestCase et peut contenir d'autre TestSuite.
L'idee des unit tests est qu'ils doivent etre executes apres chaque
modification "significative" du code pour valider que tout continue a
fonctionner correctement selon le protocol de test. C'est pour eviter
une marche arriere du projet. Le depart des tests commence en principe
par des tests qui ratent expres (perso je zappe souvent cette etape)
pour valider le test lui-meme.
Puis on perfectionne le test en lui
ajoutant des cas a traiter. Un test doit rester simple et "stupide" pour
etre comprehensible immediatement (1ere lecture) et ne pas perdre de
temps a l'ecrire. Il peut eventuellement servir de doc.
PS. je laisse le fu sur fclc parce que je ne lis pas fcd et que je ne
parle que de ce que j'ai fait en C.
Marc Boyer wrote:
Donc ça, ça sert à lancer tous les tests de la classe de test.
Mais les tests de la classe de tests, tu les écris à la main
individuellement ?
On doit toujours ecrire les tests a la main. Tu n'es pas un familier des
unit tests?
Les XTest (remplace X par une lettre designant le langage)
ne propose qu'un "framework" pour te faciliter l'ecriture de tests et de
suite de tests. Comment veux-tu qu'il sache ce que tu veux tester?
Tu as setup pour definir un standard de configuration d'entree dans tous
les tests de la classe de test (celle qui derive de TestCase), cleanup
(tearDown en Java je crois) pour nettoyer tout ce que le dernier test
execute a pu laisser comme ressources non liberees et testAssert pour
valider une condition dans ton test.
Donc:
testAssert = test une condition dans un test,e.g. testAssert(s != NULL)
test unitaire = methode qui teste une fonctionalite,e.g. testStringCat()
TestCase = groupe de test unitaire, e.g. TestString : TestCase
TestSuite = suite de groupe de test, e.g. TestString, TestArray
dans OOC, derive de TestCase et peut contenir d'autre TestSuite.
L'idee des unit tests est qu'ils doivent etre executes apres chaque
modification "significative" du code pour valider que tout continue a
fonctionner correctement selon le protocol de test. C'est pour eviter
une marche arriere du projet. Le depart des tests commence en principe
par des tests qui ratent expres (perso je zappe souvent cette etape)
pour valider le test lui-meme.
Puis on perfectionne le test en lui
ajoutant des cas a traiter. Un test doit rester simple et "stupide" pour
etre comprehensible immediatement (1ere lecture) et ne pas perdre de
temps a l'ecrire. Il peut eventuellement servir de doc.
PS. je laisse le fu sur fclc parce que je ne lis pas fcd et que je ne
parle que de ce que j'ai fait en C.
Marc Boyer wrote:Donc ça, ça sert à lancer tous les tests de la classe de test.
Mais les tests de la classe de tests, tu les écris à la main
individuellement ?
On doit toujours ecrire les tests a la main. Tu n'es pas un familier des
unit tests?
Les XTest (remplace X par une lettre designant le langage)
ne propose qu'un "framework" pour te faciliter l'ecriture de tests et de
suite de tests. Comment veux-tu qu'il sache ce que tu veux tester?
Tu as setup pour definir un standard de configuration d'entree dans tous
les tests de la classe de test (celle qui derive de TestCase), cleanup
(tearDown en Java je crois) pour nettoyer tout ce que le dernier test
execute a pu laisser comme ressources non liberees et testAssert pour
valider une condition dans ton test.
Donc:
testAssert = test une condition dans un test,e.g. testAssert(s != NULL)
test unitaire = methode qui teste une fonctionalite,e.g. testStringCat()
TestCase = groupe de test unitaire, e.g. TestString : TestCase
TestSuite = suite de groupe de test, e.g. TestString, TestArray
dans OOC, derive de TestCase et peut contenir d'autre TestSuite.
L'idee des unit tests est qu'ils doivent etre executes apres chaque
modification "significative" du code pour valider que tout continue a
fonctionner correctement selon le protocol de test. C'est pour eviter
une marche arriere du projet. Le depart des tests commence en principe
par des tests qui ratent expres (perso je zappe souvent cette etape)
pour valider le test lui-meme.
Puis on perfectionne le test en lui
ajoutant des cas a traiter. Un test doit rester simple et "stupide" pour
etre comprehensible immediatement (1ere lecture) et ne pas perdre de
temps a l'ecrire. Il peut eventuellement servir de doc.
PS. je laisse le fu sur fclc parce que je ne lis pas fcd et que je ne
parle que de ce que j'ai fait en C.
Laurent Deniau wrote:Je derive de TestCase pour les classes de test et j'utilise TestSuite
pour les grouper en suites de tests.
TestCase fourni deux methodes de run:
[...]
L'interet c'est que TestCase bloque les exceptions et fait un rapport
(TestResult et TestFailure) sur quel test+condition+file+line il s'est
arrete. Dans le cas d'une TestSuite, un test stoppe les tests de la
classe en cours mais ne stoppe pas toute la suite.
Laurent Deniau wrote:
Je derive de TestCase pour les classes de test et j'utilise TestSuite
pour les grouper en suites de tests.
TestCase fourni deux methodes de run:
[...]
L'interet c'est que TestCase bloque les exceptions et fait un rapport
(TestResult et TestFailure) sur quel test+condition+file+line il s'est
arrete. Dans le cas d'une TestSuite, un test stoppe les tests de la
classe en cours mais ne stoppe pas toute la suite.
Laurent Deniau wrote:Je derive de TestCase pour les classes de test et j'utilise TestSuite
pour les grouper en suites de tests.
TestCase fourni deux methodes de run:
[...]
L'interet c'est que TestCase bloque les exceptions et fait un rapport
(TestResult et TestFailure) sur quel test+condition+file+line il s'est
arrete. Dans le cas d'une TestSuite, un test stoppe les tests de la
classe en cours mais ne stoppe pas toute la suite.
Laurent Deniau wrote:Marc Boyer wrote:Donc ça, ça sert à lancer tous les tests de la classe de test.
Mais les tests de la classe de tests, tu les écris à la main
individuellement ?
On doit toujours ecrire les tests a la main. Tu n'es pas un familier des
unit tests?
Non, pas vraiment.
je fais les miens tout seul à la main, mais c'est tout.Les XTest (remplace X par une lettre designant le langage)
ne propose qu'un "framework" pour te faciliter l'ecriture de tests et de
suite de tests. Comment veux-tu qu'il sache ce que tu veux tester?
Je me suis malk exprimé. En fait, c'était l'existence du "framework"
qui me posait question.
Mais en lisant ta réponse, je suis allé lire quelques pages sur le WEB
sur le sujet, et je comprends mieux.Tu as setup pour definir un standard de configuration d'entree dans tous
les tests de la classe de test (celle qui derive de TestCase), cleanup
(tearDown en Java je crois) pour nettoyer tout ce que le dernier test
execute a pu laisser comme ressources non liberees et testAssert pour
valider une condition dans ton test.
OKDonc:
testAssert = test une condition dans un test,e.g. testAssert(s != NULL)
test unitaire = methode qui teste une fonctionalite,e.g. testStringCat()
TestCase = groupe de test unitaire, e.g. TestString : TestCase
TestSuite = suite de groupe de test, e.g. TestString, TestArray
dans OOC, derive de TestCase et peut contenir d'autre TestSuite.
OKL'idee des unit tests est qu'ils doivent etre executes apres chaque
modification "significative" du code pour valider que tout continue a
fonctionner correctement selon le protocol de test. C'est pour eviter
une marche arriere du projet. Le depart des tests commence en principe
Oui, ça j'ai commencé à faire, mais en C "tout nu" avec une ou deux
macro (le testAssert) et en appellant le reste à la main depuis un main.
PS. je laisse le fu sur fclc parce que je ne lis pas fcd et que je ne
parle que de ce que j'ai fait en C.
OK, laissons comme ça jusqu'à ce que quelqu'un rale et nous envoye
jouer ailleurs ;-)
Laurent Deniau wrote:
Marc Boyer wrote:
Donc ça, ça sert à lancer tous les tests de la classe de test.
Mais les tests de la classe de tests, tu les écris à la main
individuellement ?
On doit toujours ecrire les tests a la main. Tu n'es pas un familier des
unit tests?
Non, pas vraiment.
je fais les miens tout seul à la main, mais c'est tout.
Les XTest (remplace X par une lettre designant le langage)
ne propose qu'un "framework" pour te faciliter l'ecriture de tests et de
suite de tests. Comment veux-tu qu'il sache ce que tu veux tester?
Je me suis malk exprimé. En fait, c'était l'existence du "framework"
qui me posait question.
Mais en lisant ta réponse, je suis allé lire quelques pages sur le WEB
sur le sujet, et je comprends mieux.
Tu as setup pour definir un standard de configuration d'entree dans tous
les tests de la classe de test (celle qui derive de TestCase), cleanup
(tearDown en Java je crois) pour nettoyer tout ce que le dernier test
execute a pu laisser comme ressources non liberees et testAssert pour
valider une condition dans ton test.
OK
Donc:
testAssert = test une condition dans un test,e.g. testAssert(s != NULL)
test unitaire = methode qui teste une fonctionalite,e.g. testStringCat()
TestCase = groupe de test unitaire, e.g. TestString : TestCase
TestSuite = suite de groupe de test, e.g. TestString, TestArray
dans OOC, derive de TestCase et peut contenir d'autre TestSuite.
OK
L'idee des unit tests est qu'ils doivent etre executes apres chaque
modification "significative" du code pour valider que tout continue a
fonctionner correctement selon le protocol de test. C'est pour eviter
une marche arriere du projet. Le depart des tests commence en principe
Oui, ça j'ai commencé à faire, mais en C "tout nu" avec une ou deux
macro (le testAssert) et en appellant le reste à la main depuis un main.
PS. je laisse le fu sur fclc parce que je ne lis pas fcd et que je ne
parle que de ce que j'ai fait en C.
OK, laissons comme ça jusqu'à ce que quelqu'un rale et nous envoye
jouer ailleurs ;-)
Laurent Deniau wrote:Marc Boyer wrote:Donc ça, ça sert à lancer tous les tests de la classe de test.
Mais les tests de la classe de tests, tu les écris à la main
individuellement ?
On doit toujours ecrire les tests a la main. Tu n'es pas un familier des
unit tests?
Non, pas vraiment.
je fais les miens tout seul à la main, mais c'est tout.Les XTest (remplace X par une lettre designant le langage)
ne propose qu'un "framework" pour te faciliter l'ecriture de tests et de
suite de tests. Comment veux-tu qu'il sache ce que tu veux tester?
Je me suis malk exprimé. En fait, c'était l'existence du "framework"
qui me posait question.
Mais en lisant ta réponse, je suis allé lire quelques pages sur le WEB
sur le sujet, et je comprends mieux.Tu as setup pour definir un standard de configuration d'entree dans tous
les tests de la classe de test (celle qui derive de TestCase), cleanup
(tearDown en Java je crois) pour nettoyer tout ce que le dernier test
execute a pu laisser comme ressources non liberees et testAssert pour
valider une condition dans ton test.
OKDonc:
testAssert = test une condition dans un test,e.g. testAssert(s != NULL)
test unitaire = methode qui teste une fonctionalite,e.g. testStringCat()
TestCase = groupe de test unitaire, e.g. TestString : TestCase
TestSuite = suite de groupe de test, e.g. TestString, TestArray
dans OOC, derive de TestCase et peut contenir d'autre TestSuite.
OKL'idee des unit tests est qu'ils doivent etre executes apres chaque
modification "significative" du code pour valider que tout continue a
fonctionner correctement selon le protocol de test. C'est pour eviter
une marche arriere du projet. Le depart des tests commence en principe
Oui, ça j'ai commencé à faire, mais en C "tout nu" avec une ou deux
macro (le testAssert) et en appellant le reste à la main depuis un main.
PS. je laisse le fu sur fclc parce que je ne lis pas fcd et que je ne
parle que de ce que j'ai fait en C.
OK, laissons comme ça jusqu'à ce que quelqu'un rale et nous envoye
jouer ailleurs ;-)
Marc Boyer writes:Laurent Deniau wrote:Je derive de TestCase pour les classes de test et j'utilise TestSuite
pour les grouper en suites de tests.
TestCase fourni deux methodes de run:
[...]L'interet c'est que TestCase bloque les exceptions et fait un rapport
(TestResult et TestFailure) sur quel test+condition+file+line il s'est
arrete. Dans le cas d'une TestSuite, un test stoppe les tests de la
classe en cours mais ne stoppe pas toute la suite.
Même question en C :-D
Y-a-t-il des «lib» ou assimilés ?
Marc Boyer <Marc.Boyer@enseeiht.yahoo.fr.invalid> writes:
Laurent Deniau wrote:
Je derive de TestCase pour les classes de test et j'utilise TestSuite
pour les grouper en suites de tests.
TestCase fourni deux methodes de run:
[...]
L'interet c'est que TestCase bloque les exceptions et fait un rapport
(TestResult et TestFailure) sur quel test+condition+file+line il s'est
arrete. Dans le cas d'une TestSuite, un test stoppe les tests de la
classe en cours mais ne stoppe pas toute la suite.
Même question en C :-D
Y-a-t-il des «lib» ou assimilés ?
Marc Boyer writes:Laurent Deniau wrote:Je derive de TestCase pour les classes de test et j'utilise TestSuite
pour les grouper en suites de tests.
TestCase fourni deux methodes de run:
[...]L'interet c'est que TestCase bloque les exceptions et fait un rapport
(TestResult et TestFailure) sur quel test+condition+file+line il s'est
arrete. Dans le cas d'une TestSuite, un test stoppe les tests de la
classe en cours mais ne stoppe pas toute la suite.
Même question en C :-D
Y-a-t-il des «lib» ou assimilés ?
CUnit. J'aime pas.
CUnit. J'aime pas.
CUnit. J'aime pas.
Laurent Deniau wrote:CUnit. J'aime pas.
Pour quelles raisons ?
Laurent Deniau wrote:
CUnit. J'aime pas.
Pour quelles raisons ?
Laurent Deniau wrote:CUnit. J'aime pas.
Pour quelles raisons ?
L'idee des unit tests est qu'ils doivent etre executes apres chaque
modification "significative" du code pour valider que tout continue a
fonctionner correctement selon le protocol de test. C'est pour eviter
une marche arriere du projet. Le depart des tests commence en principe
par des tests qui ratent expres (perso je zappe souvent cette etape)
pour valider le test lui-meme.
a+, ld.
PS. je laisse le fu sur fclc parce que je ne lis pas fcd et que je ne
parle que de ce que j'ai fait en C.
L'idee des unit tests est qu'ils doivent etre executes apres chaque
modification "significative" du code pour valider que tout continue a
fonctionner correctement selon le protocol de test. C'est pour eviter
une marche arriere du projet. Le depart des tests commence en principe
par des tests qui ratent expres (perso je zappe souvent cette etape)
pour valider le test lui-meme.
a+, ld.
PS. je laisse le fu sur fclc parce que je ne lis pas fcd et que je ne
parle que de ce que j'ai fait en C.
L'idee des unit tests est qu'ils doivent etre executes apres chaque
modification "significative" du code pour valider que tout continue a
fonctionner correctement selon le protocol de test. C'est pour eviter
une marche arriere du projet. Le depart des tests commence en principe
par des tests qui ratent expres (perso je zappe souvent cette etape)
pour valider le test lui-meme.
a+, ld.
PS. je laisse le fu sur fclc parce que je ne lis pas fcd et que je ne
parle que de ce que j'ai fait en C.