2013-06-25 2 views
1

Я хочу использовать QTest Macro QCOMPARE в своем коде, но получаю ошибки.ошибка Использование QTest Macro QCOMPARE

QTestString.h

#ifndef QTESTSTRING_H 
#define QTESTSTRING_H 
#include <QtCore/QString> 
#include <QtTest/QtTest> 


class TestqstringTest : public QObject 
{ 
    Q_OBJECT 

public: 
    TestqstringTest(); 

private slots: 
    void testCase1(); 
}; 
#endif // QTESTSTRING_H 

QTestString.cpp

#include "QTestString.h" 

TestqstringTest::TestqstringTest() 
{ 


    testCase1(); 
} 

void TestqstringTest::testCase1() 
{ 

    QString str = "Hello"; 


    QCOMPARE(str.toUpper(),(QString)"hELLO"); 


} 

main.cpp

#include "QTestString.h" 


int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 



    TestqstringTest *test = new TestqstringTest(); 


    return a.exec(); 
} 

Однако, я получаю следующие ошибки:

ASSERT: «QTest :: testLogger» в файле qtestlog.cpp, строка 266 Программа неожиданно закончила.

ответ

1

Я нашел ответ, вы должны использовать int QTest::qExec (QObject * testObject, int argc = 0, char ** argv = 0), чтобы его искусить, а затем вывод тестового журнала правильно.