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

Tests et Performance Java Discussion :

Effectuer des tests sur des traitements de fichiers [JUnit]


Sujet :

Tests et Performance Java

  1. #1
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut Effectuer des tests sur des traitements de fichiers
    Bonsoir,

    Je suis en train de me poser une question. J'ai une classe utilitaire qui permet de réaliser une série d'opérations sur les fichiers et dossiers : copier, déplacer, télécharger, zipper, ...

    J'aimerais bien réaliser des tests unitaires pour cette classe, mais je ne vois pas comment faire cela facilement et surtout proprement.

    Il me faudrait créer des fichiers temporaires, des arborescences, comparer des fichiers, comparer des dossiers, ...

    Est-ce qu'il y a des outils permettant de faciliter le test de tels traitements ou il faut que je fasse le test en faisant toutes les créations/suppressions/déplacement de fichiers/dossiers nécessaires à la main ? C'est évident que c'est possible à réaliser, mais ça risque d'être plutôt lourd comme truc.

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Comme apparemment ça n'existe pas, j'ai commencé à développer une simple classe FileUnit qui permet de faciliter le développement de tests de méthode ayant trait au système de fichier.

  3. #3
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Si ça intéresse quelqu'un, voici ce que permet par exemple la classe que j'ai réalisée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        @Test
        public void copyFile(){
            addFile("tocopy.txt");
     
            setContent("tocopy.txt", "Salut la compagnie, c'est moi Arthur le Booli \nA+");
     
            FileUtils.copy(getPath("tocopy.txt"), getPath("copy.txt"));
     
            assertFileExists("tocopy.txt");
            assertFileExists("copy.txt");
     
            assertFileContentEquals("tocopy.txt", "Salut la compagnie, c'est moi Arthur le Booli \nA+");
            assertFileContentEquals("copy.txt", "Salut la compagnie, c'est moi Arthur le Booli \nA+");
        }
    En utilisant initTestFileSystem() et clearTestFileSystem() pour respectivement intialiser et vider le système de fichier de test.

    Cette classe émule en quelque sorte un système de fichier dans un fichier temporaire. On peut créer très facilement des fichiers et des dossiers avec les méthodes addFile() et addFolder(). On peut également modifier le contenu d'un fichier en une seule commande avec setContent().

    La classe propose ensuite une série de méthode d'assertions assertXXX() pour tester différentes propriétés (isFile, isDirectory, fileSizeEquals, fileContentEquals, directoryContains, ...).

    Je mets la classe en pièce jointe au cas où ça peut intéresser quelqu'un. Elle est faite pour JUnit 4.4, mais ne devrait pas être difficile à être modifiée pour un autre framework de test.

    Je me suis pas penché sur la beauté du code ou sur les performances de celui-ci, mais il m'a l'air suffisant robuste pour être utilisé.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 16
    Points : 17
    Points
    17
    Par défaut
    si j'ai bien compris le problème:
    si tu gère bien les exceptions correspondant a chaque problème çà va t'aider a mettre en oeuvre tes tests et de les traiter.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Effectuer des tests sur des données
    Par Domino5731 dans le forum Signal
    Réponses: 5
    Dernier message: 02/05/2012, 10h33
  2. Réponses: 4
    Dernier message: 20/06/2011, 02h01
  3. Trigger pour mettre des droits sur des procedures et des vues
    Par briino dans le forum Développement
    Réponses: 3
    Dernier message: 23/09/2009, 09h44
  4. [A-03] Test sur des dates dans des textBox
    Par moilou2 dans le forum IHM
    Réponses: 3
    Dernier message: 27/10/2008, 13h39
  5. [XSD] comment faire des tests sur des éléments
    Par attila771 dans le forum Valider
    Réponses: 1
    Dernier message: 11/10/2007, 12h32

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