2013-03-13 66 views
0

我想爲單元測試做一些簡單的練習,我已經在使用Qt的C++中完成了這些練習。我認爲使用QtTest似乎是一個合理的開始。不知道如何使用QtTest

我有一個類返回一個整數,我想測試,預期的結果是一樣的實際。

我我就在想我在做項目中的新C++源文件作爲QtTest

使用繼承人我有什麼,但是從閱讀Qt文檔我不能工作了什麼,我有什麼關係?

#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" 

這是我閱讀文檔後生產,但現在該怎麼辦如何運行,並得到了(我認爲是)控制檯輸出,指出通過/失敗?

任何幫助將是巨大的感謝

+0

您錯過了班級中的Q_OBJECT宏。 – JustMaximumPower 2013-03-13 13:24:00

+0

確定添加它,沒有不同的仍然沒有控制檯打開? – AngryDuck 2013-03-13 13:31:27

回答

0

我自己解決了這個問題只是Qt的錯誤沒有問題的代碼在所有,由於某種原因,它並不像我的項目文件在我的項目文件之前,多個文件夾的文件夾結構,使用確切在一個新的目錄相同的代碼,它的工作原理? :S

1

您需要創建一個與它的應用程序(QTEST_MAIN(..)構建main功能爲你),並在.pro文件中指定CONFIG += qtestlib

運行它時,會打開一個控制檯打印出測試結果。

+0

抱歉,不知道你的應用是什麼意思? im new to C++ – AngryDuck 2013-03-13 13:13:35

+0

QTEST_MAIN已經在那裏看看底部 – AngryDuck 2013-03-13 13:16:57

+0

我知道'QTEST_MAIN'就在那裏,我只是解釋說即使你需要構建一個可執行文件,你也不需要定義一個'main(..)作爲宏的功能爲你做。一個'app'需要告訴'qmake'你正在構建一個可執行文件(而不是共享庫等) - 這隻需要在'.pro'中將'TEMPLATE'節設置爲'app'文件。 – cmannett85 2013-03-13 13:29:42