c++ - 如何使用 googletest 捕获标准输出/标准错误?

标签 c++ unit-testing stdout stderr googletest

使用 googletest 时是否可以捕获标准输出和标准错误?框架?

例如,我想调用一个将错误写入控制台(stderr)的函数。 现在,在测试中调用函数时,我想断言那里没有输出。

或者,也许我想测试错误行为并断言当我(故意)产生错误时会打印某个字符串。

最佳答案

Googletest 为此提供了功能:

testing::internal::CaptureStdout();
std::cout << "My test";
std::string output = testing::internal::GetCapturedStdout();

关于c++ - 如何使用 googletest 捕获标准输出/标准错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3803465/

相关文章:

unit-testing - 是否有用于单元测试的 cakephp 插件(用于 TDD)?

c++ - 如何在 cout 中定义我自己的特殊字符

r - 控制dunn测试的输出

c++ - 寻找一个好的 C++ 库来解析 AMF3

c++ - 将 'this' 转换为 std::shared_ptr

python - 单元测试Python Azure函数: How do I construct a mock test request message with a JSON payload?

c# - moq:使用 Setup() 时,如何确定方法参数的相等性?

c - 如何在 C 语言中读取字符串并格式化它?

c++ - 受限 CRTP 过早拒绝

c++ - 从 lib 重新定义枚举