我试图找出一种很好的方法来对我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++ 还很陌生,所以除了输入和输出之外,我从来没有真正使用过流。
我该如何做到这一点?