我有一个C代码,它有很多函数接收ostream作为参数.我想对这些函数进行单元测试,因为我必须在执行函数后验证ostream对象数据.我可以将输出流重定向到文件,但我想检查是否可以创建临时缓冲区并将输出流重定向到缓冲区并从该缓冲区读取.
解决方法
你可以使用std :: stringstream作为内存std :: ostream:
#include <iosfwd> #include <sstream> #include <cassert> void my_func(std::ostream& out) { out << "test"; } int main() { std::ostringstream buf; my_func(buf); assert(buf.str() == "test"); }