c++ - 如何对控制台输入类进行单元测试?

标签 c++ unit-testing user-input googletest

在我的一个应用程序中,我有一个负责用户输入的类。默认的输入方式是控制台(键盘),我想为它写一些单元测试来确保它是正确的。

我正在考虑使用 google-test我的单元测试框架,这使得自动化所有测试变得容易。但是,我不确定如何自动测试控制台输入。

有没有办法模拟用户在键盘上的输入?还是我必须手动输入我的测试输入?或者可能重定向 stdin(在代码中或在运行单元测试时通过管道)?

编辑:我计划使用 GNU readline 进行用户输入。目前我看不出有什么方法可以重定向这个库的输入流——也许其他人有这方面的经验?

最佳答案

你可以使用 expect .

关于c++ - 如何对控制台输入类进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1309612/

相关文章:

c - 为什么在 C 语言中我们不能使用 a 代替 &a 来存储变量 a 的值?

c++ - 为什么 Cplex 提供了一个松弛约束的解决方案?

c++ - 智能指针的转换

c# - 如何在单元测试中使用 Moq 和 DbFunctions 来防止 NotSupportedException?

用于更快运行测试的 MySQL 配置

python - 如何根据用户输入更新和保存Python脚本(仅变量,无逻辑)?

java - 从用户输入中获取答案并传递给另一个类

c++ - 删除彼此太靠近的 vector 线?

c++ - 运算符<< 重载。无法直接在 cout 中直接使用另一个重载运算符的结果

java - 如何在 Junit 测试中覆盖 catch block ?