2012-01-16 87 views
2

我是Qt和单元测试的新手。我已经通过单元测试的文档和示例,但我无法弄清楚如何在应用程序中使用测试场景。Qt单元测试

例如,在文档中创建一个QLineEdit,然后用特定的值检查该值。

void testGUI() 
{ 
    QLineEdit lineEdit; 
    QTest::keyClicks(&lineEdit, "Hello"); 
    QCOMPARE(lineEdit.text(),QString("Hello")); 
} 

当我运行程序时,所有结果都显示在控制台中。

但是我如何检查QMainWindow窗体中是否有QLineEdit和QPushButton。

如何做GUI测试?

+0

你看过:http://www.froglogic.com/squish/gui-testing/ – Atifm 2016-03-08 21:05:51

回答

2

您似乎正在研究GUI单元测试。

在这里你去:How can I unit test a GUI?

+0

我经历了“谦逊的对话框”文档。我也浏览了Qt基金会提供的文档以及Harald Fernengel的教程。但是,我仍然对如何在小部件或GUI应用程序中使用qt框架中的单元测试感到困惑。假设我有一个QLineEdit,并且我想在运行时检查字数在3到15之间。如何检查多个测试数据? – SAM 2012-01-17 07:40:28

0

单元测试通常不包括用户界面。单元测试应该是低级别的,对每个单元(类/组件)进行测试。然后集成测试测试单位共同完成某件事情。有时候模拟对象被用来作为其他组件的标准,因此验证行为是你期望的。

处理完单元测试和集成测试之后,UI测试应该是相当困难的。对于Qt项目来说,来自froglogic的跨平台gui测试框架squish可能是您最好的选择。然而,它是一种付费产品,如果您不需要其跨平台性质,那么您可能会获得一些免费工具。大多数归结为在某种仪器下运行应用程序,然后它重播与用户界面的交互,并验证文本字段的值等。

无论如何,我相信Xcode和Visual Studio提供了一些基本的ui单元测试工具。他们也是维基百科文章here