IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Test Discussion :

[TDD] Comment tester vous vos méthodes CRUD ?


Sujet :

Test

  1. #1
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut [TDD] Comment tester vous vos méthodes CRUD ?
    Bonjour à tous,

    Je ne vais pas ressortir le débat sur les tests unitaires avec la base de données qui a déjà été traité mutlfois

    Mais plutôt savoir en pratiquant le TDD comment tester vous un Update par exemple ?
    Effectivement il est possible d'avoir un scénario Insert, Select, Update, Select mais ce n'est plus vraiment un test unitaire complètement indépendant non ?

    D'avance merci pour vos retours ;-)

    PS : Si vous connaissez un bouquin sur le TDD (.net de préférence) en Fr ça serait génial ;-)

  2. #2
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Salut,

    Je n'ai pas très bien compris, tu essaies de faire un test unitaire pour tester le comportement d'une méthode d'une classe (exemple : la méthode Update de ton contrôleur/présenteur), ou un test de plus haut niveau qui implique plusieurs couches de l'application, et donc se rapprocherait plus d'un test d'intégration ?

    Si j'avais un livre à te conseiller (mais qui n'est ni en français ni très axé TDD ) : The Art of Unit Testing de Roy Osherove.

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut
    Salut Maximilian

    Citation Envoyé par Maximilian Voir le message
    tu essaies de faire un test unitaire pour tester le comportement d'une méthode d'une classe (exemple : la méthode Update de ton contrôleur/présenteur)
    Oui c'est exactement ça ;-) (Enfin plutôt au niveau DAO ;-) ).

    Pour l'instant ce que je fais comme Test, c'est un Select de mon objet (BeforeUpdate), un Update et à nouveau un Select (AfterUpdate)
    Et je compare BeforeUpdate et AfterUpdate. Le problème c'est que le Test de la méthode Update implique la méthode Select

    Merci pour le livre, il a effectivement l'air excellent

  4. #4
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Si c'est un DAO, c'est particulier. On ne peut pas vraiment tester la DAL sans vérifier que l'écriture dans la base de données se fait bien. En d'autres termes on ne peut pas isoler complètement le code testé de tout élément extérieur (le SGBD, en l'occurrence).

    Est-ce toujours des tests unitaires ? Je ne pense pas vraiment, car tu as besoin de la présence d'un élément en base pour que ton test du DAO fonctionne.

    Du coup je ne vois pas d'autre solution qu'exécuter le scénario dont tu parles, mais ce n'est pas forcément grave vu que de toute façon notre test n'est sans doute déjà pas atomique... L'important étant qu'il existe un autre test pour les fonctionnalités annexes dont tu es obligé de te servir dans ce test

  5. #5
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Te donner un exemple complet n'est pas possible puisque d'un test à l'autre la conception et l'implémentation change d'une équipe/personne à une autre, en tout cas je te propose ce bout de code de test en delphi il ne passe pas encore le test de la compilation (voyant rouge) pour passer au voyant vert il va falloir corriger ces erreurs en implémentant tout cela, ce qui est bien est qu'il est possible de faire émerger un code automatiquement et les modèles UML


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Unit TestCreateDataWithSGBD;
    
    type
    
    TTestCreateDataWithSGBD = class(TTestCase)
    
    published
    
    procedure TesterCreateOneData;
    
    
    end;
    
    
    TTestCreateDataWithSGBD.TesterCreateOneData;
    var
    testOneData :TTestCreateOneData;
    begin
    //pré-condition
    testOneData := TTestCreateOneData.Create;
    
    //event
    FacadeSgbd.CreateOneData(testOneData);
    
    //post condition
    CheckTrue(FacadeSgbd.IsCreatedInBuffer(testOneData),'IsCreatedInBufferfailed');
    CheckTrue(FacadeSgbd.IsCreatedOnSupport(testOneData),'IsCreatedOnSupportfailed');
    end;

Discussions similaires

  1. Comment codez vous vos interfaces ?
    Par Dsphinx dans le forum AWT/Swing
    Réponses: 29
    Dernier message: 15/06/2006, 00h03
  2. [Info]Comment créez vous vos interfaces ?
    Par Le Pharaon dans le forum Eclipse Java
    Réponses: 10
    Dernier message: 24/11/2005, 14h33
  3. Comment creez vous vos interfaces ?
    Par Regis.C dans le forum EDI et Outils pour Java
    Réponses: 28
    Dernier message: 21/10/2005, 16h47
  4. [MySQL] Comment ecrivez-vous vos traitements batch
    Par ouioui2000 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/10/2005, 15h36
  5. [tomcat][jsp] Comment gerez vous vos connexions bdd?
    Par olive.m dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 21/06/2004, 17h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo