2013-03-13 62 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