我有来自Google 测试单元测试的以下输出:
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)
该十六进制输出字符串不是很有用。有什么我可以添加到Line
类(相等测试失败)以在这种情况下提供更多有用的错误吗?
有问题的类已将运算符重写<<
为成员函数:
std::ostream& operator<<(std::ostream& stream) const
{
return stream << "Line (radius=" << d_radius << " theta=" << d_theta << ")";
}
您可以看到这适用于“预期”行,但不适用于“实际”行。这种说法是不正确的——显示的测试来自TEST
宏的参数。