Frage

Ist es möglich, cxxunit oder andere Einheit Test-Framework zu verwenden (mit Ausnahme von QtTestLib ) zu Test qt-Widgets?

Wenn ja, dann gibt es zwei weitere Fragen:

  1. Wie?
  2. Da ich Unit-Tests am laufenden valgrind verwenden, können Sie diesem Bericht einige Fehler?
War es hilfreich?

Lösung

Ja, sollte es möglich sein. Ich bin nicht sicher über cxxunit speziell, aber es ist theoretisch möglich.

  1. Um richtig testen Qt-Objekte, werden Sie wahrscheinlich brauchen ein QApplication Objekt in Ihren globalen Auf- und Abbau Funktionen zum Erstellen / zerstören. Sofern Sie nicht ausdrücklich die Prüfung QApplication Funktionalität sind, sollten Sie nur eine für den gesamten Durchlauf der Testanwendung erstellen. Auf diese Weise können Sie Teile des Widgets Logik testen, aber nicht leicht das Aussehen oder UI Interaktivität des Widgets. Auch bestimmte Elemente Testen der Anwendung Ereignisschleife läuft auf, die verlassen kann, was schwieriger wäre.
  2. Valgrind können einige Fehler melden. Es kann auch Fehler mit Qt-Code, insbesondere statische Zuordnungen berichten, die Anwendung Teardown zurückzufordern gelassen werden.

Andere Tipps

Wenn Sie Ihre UI testen wollen, schlage ich vor, ein UI-Test-Tool zu verwenden, wie Squish . Unit-Tests ich mehr finden geeignet, um die Logik hinter der Widgets zu testen, nicht die Widgets selbst. Wenn Sie möchten, Unit-Test Ihr Qt-Widgets wirklich, ich glaube nicht, dass es eine bessere Lösung als QtTestLib ist.

Valgrind: Es gibt einen valgrind Plugin für Squish . Ich habe nicht, dass man sich verwendet though. Andere Unit-Tests können natürlich leicht in valgrind ausgeführt werden, obwohl ich weiß nicht, jede Lösung, die diese vollständig automatisiert. Man müßte dafür sorgen, um wirklich alle Warnungen unterdrücken von außen ein Code besitzt, so dass ein Fehler in z.B. x11 Libs nicht löst der Unit-Test zum Scheitern verurteilt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top