Wie testet man Formulare?
Verfasst: 1. Juli 2009 08:04
Ich hab im Designer was nettes gebastelt, die ui gewrappt, von der ui geerbt meine eigenen Methoden reingepackt und hab ein fertiges Formular mit QLineEdits, Buttons usw...
Aber wie teste ich so etwas? Writing a GUI Test hier http://doc.trolltech.com/4.5/qtestlib-tutorial3.html umschifft das Problem sehr nett in dem es ein einfaches Beispiel mit nem QLineEdit bringt:
Wie soll ich aber ein lineEdit von meiner Form testen?
Beispielsweise habe ich eine Foo.ui Datei im Designer, gewrappt habe ich eine ui_Foo.h und muss von dieser dann erben, um meine Logik zu implementieren:
Nun kann ich nicht mehr so etwas schreiben, wie
Das ist klar, denn ich erbe ja die Dialogklasse private, was semantisch korrekt ist und kann somit nicht auf die einzelnen Elemente drauf zugreifen.
Wie soll man so etwas testen? Ich kann nicht public erben, das wäre schlechtes Design. Ich kann mir drei mögliche Wege denken, die mir alle äußert problematisch erscheinen.
Was macht ihr in einem solchen Fall? Wie testet ihr Formulare, Dialoge usw?[/quote]
Aber wie teste ich so etwas? Writing a GUI Test hier http://doc.trolltech.com/4.5/qtestlib-tutorial3.html umschifft das Problem sehr nett in dem es ein einfaches Beispiel mit nem QLineEdit bringt:
Code: Alles auswählen
void TestGui::testGui()
{
QLineEdit lineEdit;
QTest::keyClicks(&lineEdit, "hello world");
QCOMPARE(lineEdit.text(), QString("hello world"));
}Beispielsweise habe ich eine Foo.ui Datei im Designer, gewrappt habe ich eine ui_Foo.h und muss von dieser dann erben, um meine Logik zu implementieren:
Code: Alles auswählen
class MeineLogik : public QDialog, private Ui::Foo
{...};
Code: Alles auswählen
void TestGui::testGui()
{
MeineLogik klasse;
QTest::keyClicks(klasse->lineEdit, "hello world");
QCOMPARE(klasse->lineEdit.text(), QString("hello world"));
}Wie soll man so etwas testen? Ich kann nicht public erben, das wäre schlechtes Design. Ich kann mir drei mögliche Wege denken, die mir alle äußert problematisch erscheinen.
Was macht ihr in einem solchen Fall? Wie testet ihr Formulare, Dialoge usw?[/quote]