Ich habe eine Frage zu GUI-Tests mit QT. Wenn ich ein Projekt mit dem Qt Creator erstelle, ist das Userinterface (ui) in der Klasse MainWindow privat, etwa so
Um jetzt GUI-Tests zu schreiben muss ich im Testprojekt auf ui zugreifen. Ich hatte den Gedanken, das so zu tun,// Ausschnitt aus Klasse MainWindow
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindowClass *ui;
den Zeiger ui also öffentlich zu machen. Gut ist das nicht. Die andere Möglichkeit wäre, eine öffentliche Zugriffsmethode auf ui zu erstellen. Mir widerstrebt es allerdings, den Produktivcode "nur" für Tests zu ändern.void GuiTestClass::testGui()
{
MainWindow mainWindow;
QTest::mouseClick(mainWindow.ui->pushButton, Qt::LeftButton); // ui öffentlich
QString text = mainWindow.ui->lineEdit->text();
QVERIFY(text.compare("") == 0);
}
Hat jemand eine Idee, wie man das besser machen könnte? Welche der Möglichkeiten würdet Ihr bevorzugen? Oder gibt es für dieses (Standard-)problem ein allgemein anerkanntes Muster?
Vielen Dank für Eure Antworten
Rollo