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 :
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 !
Partager