3
我重載了班級中的左移操作符,並且輸出工作正常,所以例如當我有一行說cout < < obj;我將輸出用逗號分隔的字段。如何比較C++中的兩個ostream對象是否相等?
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無法編譯程序。