Question

I want to do unit testing for some simple exercises i have done in c++ using Qt. i figured using QtTest seemed like a reasonable place to start.

i have a class that returns an integer and i want to test that the expected result is the same as the actual.

am i right in thinking i make a new c++ source file in the project to use as the QtTest

heres what i have but from reading the Qt documentation i cant work out what i have to do?

    #include "Conversion.h"
#include <QtTest/QtTest>


class ConversionTest : public QObject
{
private slots:
    void testConvert();

};

void ConversionTest::testConvert()
{
    int unit1 = 1, unit2 = 10;
    std::string sUnit1 = "stone", sUnit2 = "pound";
    double expected = 10.8862;
    double actual;

    Conversion c;
    actual = c.convert(unit1, unit2, sUnit1, sUnit2);
    QCOMPARE(expected, actual);
}

QTEST_MAIN (ConversionTest)
#include "conversiontest.moc"

this is what i produced after reading the documentation but now what how do i run it and get the (what i think is) console output that says pass/fail?

any help would be great thanks

Was it helpful?

Solution 2

I solved this myself the problem was just Qt errors no problem with the code at all, for some reason it didnt like that my project files were in a folder structure of more than one folder before my project files, used the exact same code in a new dir and it worked?? :S

OTHER TIPS

You need to create an app with it (QTEST_MAIN(..) builds the main function for you), and specify CONFIG += qtestlib in the .pro file.

When you run it, a console opens that prints out the test results.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top