Ich implementiere Tests für meine Qt-Anwendung mit einer 'internen Testbibliothek'. Das Problem besteht darin, dass die Bibliothek keine Option zum Vergleichen von zwei QColor
Objekten bietet.Vergleichen Sie die Farbe von zwei QColor-Objekten
Ist es richtig, den folgenden Code zu verwenden, um die Farbe von zwei QColor Objekten zu vergleichen?
void MyClass::compare(QColor color1, QColor color2)
{
ASSERT_EQ(color1.red(), color2.red());
ASSERT_EQ(color1.green(), color2.green());
ASSERT_EQ(color1.blue(), color2.blue());
ASSERT_EQ(color1.alpha(), color2.alpha());
}
Oder vielmehr, ist es genug, um die Rot-, Grün-, Blau- und Alpha-Kanäle zu vergleichen, um die beiden Farben gleich zu betrachten?
Hinweis: In diesem Fall muss ich genau wissen, welcher Kanal "nicht übereinstimmt", so dass ich nicht einfach den Operator ==
verwenden kann.
Hoffe, dass Sie mich nicht dagegen Ashwel einen Link zu Ihrer Antwort hinzufügen? –
Ja, 'operator ==()' sollte immer das Erste sein, was wir versuchen, und wir müssen uns nur darum sorgen, den Vergleich selbst durchzuführen, wenn der Klassenautor das nicht schon getan hat. –
Sorry, ich war nicht sehr klar in meiner Frage, ich habe es aktualisiert. – KelvinS