【发布时间】:2012-10-14 22:34:43
【问题描述】:
我正在尝试找出一种很好的方法来对我在 C++ 中对 operator<< 的实现进行单元测试。我有一个实现运算符的类,并给定一个具有特定状态的实例,我想检查输出是否是我想要的。
这是我的代码(头文件):
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:我有点过于简单了 - 但感谢您的提醒!
标签: c++ unit-testing iostream