e-Babillard - plateforme pédagogique interactive
Pensez à mettre un avatar personnel Bienvenue, Invité. Veuillez vous connecter ou vous enregistrer.
18 Décembre 2017 à 07:48:39

Connexion avec identifiant, mot de passe et durée de la session
Recherche:     Recherche +
* Flux RSS www.jpdelx.com Accueil Aide Identifiez-vous Enregistrez-vous
+  e-Babillard - plateforme pédagogique interactive
|-+  Ressources pédagogiques communes concernant...
| |-+  Langage C
| | |-+  Sujet: Tests Unitaires
« sujet précédent | | sujet suivant »
Pages: [1] Imprimer
Auteur Sujet: Tests Unitaires  (Lu 85 fois)
jpdelx
Administrator
Hero Member
*****
Hors ligne Hors ligne

Sexe: Homme
Messages: 12656


Il n'y a pas de questions idiotes...


WWW
Tests Unitaires
« le: 14 Octobre 2014 à 11:57:52 »

Bonjour

Tests Unitaires : kézako ?
~> http://fr.wikipedia.org/wiki/Test_unitaire

"Faire passer un examen à une fonction utilisateur"

Seatest : une très bonne bibliothèque portable et donc
indépendante de l'IDE utilisé
~> http://code.google.com/p/seatest/  Smiley

@lpf

J.Phil.

* test2.jpg (159.67 KB - Téléchargé 9 fois.)
Journalisée

J.Phil. DELCROIX
www.jpdelx.com

Merci de rédiger vos messages dans un français compréhensible par tous !
jpdelx
Administrator
Hero Member
*****
Hors ligne Hors ligne

Sexe: Homme
Messages: 12656


Il n'y a pas de questions idiotes...


WWW
Tests Unitaires - Exemple
« Répondre #1 le: 18 Octobre 2014 à 12:39:01 »

Bonjour

main.c

Code:
/* ISEN 3 - TP 2 de C */
/* jpdelx - octobre 2014 */

#include <stdio.h>
#include <string.h>

#include "seatest.h"
#include "seatest.c"

#include "mesFonctions.h"
#include "mesFonctions.c"

/*----------[ mes Tests Unitaires ]----------*/
void test_tp2()
{
puts("** T.U. pour isdigit() **");
assert_true(isdigit('0'));
assert_false(isdigit('0'));
assert_true(isdigit('A'));
assert_false(isdigit('A'));

puts("** T.U. pour my_isdigit() **");
assert_true(my_isdigit('0'));
assert_false(my_isdigit('0'));
assert_true(my_isdigit('A'));
assert_false(my_isdigit('A'));

puts("** T.U. pour toupper() **");
assert_true(toupper('a')=='A');
assert_false(toupper('a')=='A');
assert_true(toupper('z')!='Z');
assert_false(toupper('z')!='Z');

puts("** T.U. pour my_toupper() **");
assert_true(my_toupper('a')=='A');
assert_false(my_toupper('a')=='A');
assert_true(my_toupper('z')!='Z');
assert_false(my_toupper('z')!='Z');

puts("** T.U. pour strcpy() **");
char chaine[255];
strcpy(chaine,"jpdelx");
assert_string_equal(chaine,"jpdelx");
assert_true(!strcmp(chaine,"jpdelx")); /* /!\ strcmp retourne FAUX si les 2 chaînes sont identiques */
assert_true(strcmp(chaine,"jpdelx"));

puts("** T.U. pour my_strcpy() **");
my_strcpy(chaine,"jpdelx");
assert_string_equal(chaine,"jpdelx");
assert_true(!strcmp(chaine,"jpdelx")); /* /!\ strcmp retourne FAUX si les 2 chaînes sont identiques */
assert_true(strcmp(chaine,"jpdelx"));

puts("** T.U. pour strlen() **");
assert_int_equal(strlen("jpdelx"),6);
assert_int_equal(strlen("J.Phil. DELCROIX"),123);

puts("** T.U. pour my_strlen() **");
assert_int_equal(my_strlen("jpdelx"),6);
assert_int_equal(my_strlen("J.Phil. DELCROIX"),123);
}

/* procédure d'installation des T.U. */
void test_fixture_tp2( void )
{
test_fixture_start();
run_test(test_tp2);
test_fixture_end();
}

/* suite de l'installation des T.U. */
void all_tests( void )
{
test_fixture_tp2();
}

/* procédure principale avec exécution des T.U. */
int main(){

/* Exemple d'utilisation de isdigit() */
    char symbole;
    char* chaine;

    symbole='0';
    puts("** isdigit() **");
    if( isdigit(symbole)) printf("%c est un digit\n",symbole); else printf("%c n'est pas un digit\n",symbole);
    symbole='A';
    if( isdigit(symbole)) printf("%c est un digit\n",symbole); else printf("%c n'est pas un digit\n",symbole);

/* Exemple d'utilisation de my_isdigit() */
    puts("** my_isdigit() **");
    symbole='0';
    if( my_isdigit(symbole)) printf("%c est un digit\n",symbole); else printf("%c n'est pas un digit\n",symbole);
    symbole='A';
    if( my_isdigit(symbole)) printf("%c est un digit\n",symbole); else printf("%c n'est pas un digit\n",symbole);

/* Exemple d'utilisation de toupper() */
    puts("** toupper() **");
    symbole='a';
    printf("minuscule : %c => majuscule %c\n",symbole,toupper(symbole));
    symbole='z';
    printf("minuscule : %c => majuscule %c\n",symbole,toupper(symbole));

/* Exemple d'utilisation de my_toupper() */
    puts("** my_toupper() **");
    symbole='a';
    printf("minuscule : %c => majuscule %c\n",symbole,my_toupper(symbole));
    symbole='z';
    printf("minuscule : %c => majuscule %c\n",symbole,my_toupper(symbole));

/* Exemple d'utilisation de strcpy et de strlen() */
    puts("** strlen() **");
    strcpy(chaine,"jpdelx");
    printf("La chaîne [%s] contient %d caractères\n",chaine,strlen(chaine));
    strcpy(chaine,"J.Phil. DELCROIX");
    printf("La chaîne [%s] contient %d caractères\n",chaine,strlen(chaine));

/* Exemple d'utilisation de my_strcpy() et de my_strlen() */
    puts("** my_strlen() **");
    my_strcpy(chaine,"jpdelx");
    printf("La chaîne [%s] contient %d caractères\n",chaine,my_strlen(chaine));
    my_strcpy(chaine,"J.Phil. DELCROIX");
    printf("La chaîne [%s] contient %d caractères\n",chaine,my_strlen(chaine));

run_tests(all_tests);
return 0;
}

mesFonctions.h

Code:
/*------------[ mes prototypes ]------------*/
int my_isdigit(char);

char my_toupper(char);

int my_strlen(char *);

void my_strcpy(char *, char *);

MesFonctions.c

Code:
/*------------[ mes fonctions ]------------*/
int my_isdigit(char c){
return c>='0' && c<='9';
}

char my_toupper(char c){
return c-('a'-'A');
}

int my_strlen(char *s){
int i=0;
while(*s!='\0') {i++;s++;}
return i;
}

void my_strcpy(char *s, char *t) {
   while ((*s = *t) != '\0') { s++; t++; }
}

@lpf

J.Phil.

* TP 2 - XQ.jpg (218.54 KB - Téléchargé 7 fois.)
Journalisée

J.Phil. DELCROIX
www.jpdelx.com

Merci de rédiger vos messages dans un français compréhensible par tous !
Pages: [1] Imprimer 
e-Babillard - plateforme pédagogique interactive  |  Ressources pédagogiques communes concernant...  |  Langage C  |  Sujet: Tests Unitaires « sujet précédent | | sujet suivant »
Aller à:  

Propulsé par MySQL Propulsé par PHP e-Babillard - plateforme pédagogique interactive | Propulsé par SMF 1.0.6 modifié par jpdelx.
© 2001-2005, Lewis Media. Tous droits réservés.
XHTML 1.0 Transitionnel valide ! CSS valide !
Page générée en 0.197 secondes avec 20 requêtes.