ho il seguente output da un test Google Test unità:Personalizza effettivo previsto "Valore" stringa/nei messaggi in uscita Google prova di guasto
UnitTests.cc:56: Failure
Value of: LineSegment2i(Vector2i(-10,0), Vector2i(-10,10)).toLine()
Actual: 24-byte object <00-00 00-00 00-00 24-C0 00-00 00-00 00-00 00-00 00-00 2F-2B FF-7F 00-00>
Expected: Line(10, 3.14159265358979323846)
Which is: 24-byte object <00-00 00-00 00-00 24-40 18-2D 44-54 FB-21 09-40 00-00 64-00 00-00 00-00>
[ FAILED ] LineSegmentTests.toLine (1 ms)
quella stringa esadecimale di uscita non è molto utile. C'è qualcosa che posso aggiungere alla classe Line
(per la quale un test di uguaglianza non riesce) per fornire errori più utili in questi casi?
La classe in questione ha ignorato l'operatore <<
come una funzione membro:
std::ostream& operator<<(std::ostream& stream) const
{
return stream << "Line (radius=" << d_radius << " theta=" << d_theta << ")";
}
Si può vedere che questo funziona per la linea 'Previsto', ma non la linea 'Actual'.
Questa affermazione non è vera — il test mostrato proviene dal parametro della macro TEST
.