Google Test 単体テストからの出力は次のとおりです。
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)
その 16 進数の出力文字列はあまり役に立ちません。Line
そのような場合により役立つエラーを提供するために、(等値テストが失敗している) クラスに追加できるものはありますか?
問題のクラスは、<<
演算子をメンバー関数としてオーバーライドしています。
std::ostream& operator<<(std::ostream& stream) const
{
return stream << "Line (radius=" << d_radius << " theta=" << d_theta << ")";
}
これは「Expected」行では機能しますが、「Actual」行では機能しないことがわかります。このステートメントは正しくありません。示されているテストは、TEST
マクロのパラメーターから取得されます。