Tôi có đầu ra sau đây từ một thử nghiệm Google Test đơn vị:Tùy chỉnh thực tế/dự kiến "Giá trị của" chuỗi trong Google thử nghiệm thông điệp đầu ra thất bại
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)
Đó là chuỗi đầu ra hệ thập lục phân không phải là rất hữu ích. Có điều gì tôi có thể thêm vào lớp Line
(mà một bài kiểm tra bình đẳng không thành công) để cung cấp các lỗi hữu ích hơn trong các trường hợp như vậy không?
Lớp trong câu hỏi đã ghi đè các nhà điều hành <<
như một hàm thành viên:
std::ostream& operator<<(std::ostream& stream) const
{
return stream << "Line (radius=" << d_radius << " theta=" << d_theta << ")";
}
Bạn có thể thấy rằng công trình này cho dòng 'dự kiến', nhưng không phải là dòng 'thực tế'.
Tuyên bố này là không đúng — kiểm tra được hiển thị đến từ tham số của macro TEST
.