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

Qt Discussion :

[Qt Test] Tester une classe


Sujet :

Qt

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 6
    Points : 7
    Points
    7
    Par défaut [Qt Test] Tester une classe
    Bonjour tout le monde !

    Je suis en licence pro et pour mon projet de fin d'année je fais du c++ sur QT.
    Mais j'ai un gros soucis avec le framework de test de QT et les tutos sur internet sont très peu clair ... Ils prennent tous l'exemple de la méthode toUpper, mais le soucis viens du fait que je n'arrive pas à trouver comme manipuler ces tests sur mes propres classes ! J'ai pas mal de questions sans réponses :
    -> est-ce que je dois faire un .cpp et un .h ?
    -> est-ce que ma classe de test doit être dans un autre projet ? Si c'est le cas, comment je dois faire le lien entre les deux ?
    -> est-ce que je dois importer les .cpp ou les .h dans mes classes de test ?

    Voici mon code actuel de ma classe de test :

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    #include <QString>
    #include <QtTest>
    #include "carre.h"
    #include "cercle.h"
    #include "point.h"
    #include "rectangle.h"
    #include "segment.h"
    #include "figure.h"
    #include "position.h"
     
    class TestsProjetTest : public QObject
    {
        Q_OBJECT
     
    public:
        TestsProjetTest();
        Carre* c;
        Position* p;
     
    private Q_SLOTS:
        void testDeplacement();
    };
     
    TestsProjetTest::TestsProjetTest()
    {
        c = new Carre();
        p = new Position(10, 10);
    }
     
    void TestsProjetTest::testDeplacement()
    {
        QVERIFY2(true, "Failure");
    }
     
    QTEST_APPLESS_MAIN(TestsProjetTest)
     
    #include "tst_testsprojettest.moc"
    C'est un code standard qui devrait normalement marché... Tous les fichiers a tester sont dans le même répertoire, mais j'ai des soucis...
    J'ai des erreurs :
    error: undefined reference to `Carre::Carre()'
    error: undefined reference to `Position::Position(int, int)'
    :-1: error: collect2: error: ld returned 1 exit status
    C'est très étrange, sachant que les méthodes fonctionnent très bien dans la classe principale, qu'il n'y a pas d'erreur dans le fichiers (du genre oubli de marque Carre::, vu que tout compile et fonctionne dans le projet).

    Du coup, je suis totalement désarmé... ça va faire presque une semaine qu'on cherche comment faire et pour le moment on a rien du tout et on arrive pas a avancer ...

    Si jamais vous pouvez me débloquer, me dire ce qui va pas, je vous serez très reconnaissant ! Surtout qu'on doit rendre le projet bientôt, donc c'est un peu la galère...
    Et s'il vous plaît, ne me redirigez pas vers les tutos de QT qui sont dans la doc Qt sur ToUpper() ou sur les tests de la doc Qt parce que j'y suis passé un bon nombre de fois dessus et j'ai pas réussi a mettre en place quelque chose de fonctionnel... de même pour le tuto test Qt qui est en place ici !

    Voilà, j’espère que vous pourrez m'aider !

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour

    Citation Envoyé par Arkhemval Voir le message
    -> est-ce que je dois faire un .cpp et un .h ?
    C'est généralement mieux de faire ainsi.
    Citation Envoyé par Arkhemval Voir le message
    -> est-ce que ma classe de test doit être dans un autre projet ? Si c'est le cas, comment je dois faire le lien entre les deux ?
    On peut faire un projet spécifique pour les tests. Le lien sera d'inclure d'une façon ou d'une autre, le projet principal. La séparation n'est pas obligatoire. Donc ma réponse finale serait : ne le faites pas.
    Citation Envoyé par Arkhemval Voir le message
    -> est-ce que je dois importer les .cpp ou les .h dans mes classes de test ?
    On n'importe (je parle ici d'include) jamais les .cpp

    Citation Envoyé par Arkhemval Voir le message
    C'est un code standard qui devrait normalement marché... Tous les fichiers a tester sont dans le même répertoire, mais j'ai des soucis...
    J'ai des erreurs :
    error: undefined reference to `Carre::Carre()'
    error: undefined reference to `Position::Position(int, int)'
    :-1: error: collect2: error: ld returned 1 exit status
    Il faut compiler le .cpp où Carre est définit, avec le test.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Réponses: 9
    Dernier message: 13/03/2015, 18h19
  2. Test d'une classe(junit)
    Par wear12 dans le forum Langage
    Réponses: 7
    Dernier message: 07/10/2014, 21h48
  3. [EJB3.1] Test d'une class @Stateless avec façade
    Par Alskar dans le forum Java EE
    Réponses: 3
    Dernier message: 14/05/2012, 08h26
  4. Réponses: 3
    Dernier message: 11/07/2011, 18h07
  5. [JUnit] comment écrire des test dans une classe DAO
    Par nouramin dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 23/04/2010, 11h05

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