operator<<
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++ にかなり慣れていないので、入力と出力以外にストリームを実際に使用したことはありません。
どうすればこれを達成できますか?