Я перегрузил левый оператор сдвига в своем классе, и вывод работает нормально, например, когда у меня есть строка с надписью cout << obj; Я выведу поля, разделенные запятой. </p>
ostream& operator<<(ostream& output, const MyClass& obj)
{
output << obj.field1 << ", " << obj.field2;
return output;
}
Я хочу написать контрольный пример для этой операции, но я не знаю, как сравнить возвращаемый результат с ожидаемым результатом в cxxtest. Я попробовал следующее, но это не сработало:
TS_ASSERT_EQUALS(cout << "1, 50.0", cout << obj);
Должен ли я использовать другую операцию cxxtest или изменить механизм передачи параметров в TS_ASSERT_EQUALS?
Обратите внимание, что при выводе следующих строк я получаю те же результаты:
cout << obj;
cout << "1, 50.0";
Примечание: я получаю кучу ошибок компилятора, когда пытаюсь скомпилировать программу из-за сбоя TS_ASSERT_EQUALS.