Solved Q_Assert check of nullpointer
-
Hallo zusammen,
mit Q_ASSERT ist es möglich den nullptr abzufangen?
z.B:class A{ std::unique_ptr <QClass> mReferenceClass ...... void foo(); }; void A::foo() { Q_ASSERT(mReferenceClass) // oder QVERIFY(mReferenceClass != nullptr) // Was wäre hier besser Q_ASSERT(....) oder QVERIFY(....) }
danke in voraus
-
@Galilio said in Q_Assert check of nullpointer:
Hallo zusammen,
mit Q_ASSERT ist es möglich den nullptr abzufangen?
Ja.
[...]
// Was wäre hier besser Q_ASSERT(....) oder QVERIFY(....)QVERIFY kommt aus QtTest, du sollst das nich im normaler Code nutzen.
(Entschuldigung fur mein Deutch :P)
-
@Galilio
soweit ich das in Erinnerung habe ist QVERIFY Teil von QTest und sollte nicht Teil deines finalen Produktes sein -> Q_AssertAber beachte, das Q_Assert == false & release mode führt zu einer Terminierung deines Programmes :)
Edit:
Sniped by @sierdzio 😉(Entschuldigung fur mein Deutch :P)
Better than 90% of all German speakers 🙈
-
Es handelt sich um einen Unit Test und meine Fragen bezieht sich auf diese beide Schreibweise:
Q_ASSERT(mReferenceClass)
und
QVERIFY(mReferenceClass != nullptr)
Was wäre besser?
-
@Galilio
Naja für nen test wäre die bessere Frage, QVERIFY oder QCOMPARE, weil Q_ASSERT ja nicht in deine Log Datei schreibt -
@J-Hilk
Heisst das: Auf Q_ASSERT() zu verzichten? -
@Galilio said in Q_Assert check of nullpointer:
Heisst das: Auf Q_ASSERT() zu verzichten?
Hallo, wie es schon @J-Hilk und @sierdzio geschrieben haben,
Q_ASSERT()
ist eigentlich für "normale" Applikationen entwicklung um Fehler zu finden (sehe https://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT).
QVERIFY()
,QCOMPARE()
uzw. sind fur Unittest gedacht (sehe https://doc.qt.io/qt-5/qttestlib-tutorial1-example.html)