我想弄清楚一個很好的方式來單元測試我在C++中執行的operator<<
。我有一個實現操作符的類,並給出了一個具有特定狀態的實例,我想檢查輸出結果是我想要的。單元測試運算符<< in C++
這是我的代碼(頭文件):現在
class Date {
virtual int year() const { return 1970; };
virtual int month() const { return 1; };
virtual int day() const { return 1; };
friend std::ostream &operator<<(std::ostream &os, const Date &d);
};
std::ostream &operator<<(std::ostream &os, const Date &d) {
os << d.year() << "-" << d.month() << "-" << d.day();
return os;
};
,在我的單元測試方法,我只是做Date d; cout << d;
,當我運行的輸出是正確的測試驗證。但是,我更願意以編程方式驗證這一點,所以我不必在最終報告中看到測試輸出(希望它說「0次測試失敗!」)。
我對C++相當新,所以我從來沒有真正使用過流,除了輸入和輸出。
我該如何做到這一點?
除非需要訪問私人會員,否則不應該讓它成爲朋友。 – chris
[std :: stringstream在標題](http://tipsandtricks.runicsoft.com/Cpp/Stringstream.html) –
@chris:我簡單一點 - 但感謝提醒! –