Qt Testlib 测试GUI(2)

通过eventlist 模拟多个event,测试widget 对event的处理情况。

class TestGui: public QObject

 {
     Q_OBJECT
 
  
 private slots:
     void testGui_data();
     void testGui();
 };

和之前测试function的方式一样,创建testcase 和 添加数据函数。

 

void TestGui::testGui_data()

 {
     QTest::addColumn<QTestEventList>("events");
     QTest::addColumn<QString>("expected");
 
     // 通过QTestEventList 保存模拟的输入按键
     QTestEventList list1;
     list1.addKeyClick('a');
     QTest::newRow("char") << list1 << "a";
 
  
     QTestEventList list2;
     list2.addKeyClick('a');
     list2.addKeyClick(Qt::Key_Backspace);
     QTest::newRow("there and back again") << list2 << "";
 }
 
  
 void TestGui::testGui()
 {
     QFETCH(QTestEventList, events);
     QFETCH(QString, expected);
 
  
     QLineEdit lineEdit;
 
  
     events.simulate(&lineEdit);
 
  
     QCOMPARE(lineEdit.text(), expected);
 }
 
处理一组输入按键,简化测试程序。
 
 
 
  

 

你可能感兴趣的:(Qt,Test)