Perl:测试输入阅读器?

dra*_*lae 3 perl stdin cpan module

有没有办法使用标准的Test等模块自动测试Perl程序是否正在从STDIN正确读取输入?例如,测试从STDIN读取两个整数的程序并打印它们的总和.

DVK*_*DVK 5

这并不是100%明确你的意思,我会假设您想要编写一个测试主程序的测试脚本,作为测试的一部分,需要通过STDIN传递测试输入数据.

如果您的程序输出它所读取的内容,您可以轻松完成.您不需要特殊的测试模块 - 只需:

  1. 通过系统调用调用您正在测试的程序

    • 使用,将测试程序的STDIN和STDOUT重定向到测试脚本

      • IPC::Open2 模块通过管道打开两侧到文件句柄,

      • ...或者,构建您的命令以重定向到/从文件中读取/写入测试脚本中的文件

  2. 检查您在最后一步中收集的测试程序中的STDOUT,以确保打印正确的值.