2013-07-02 40 views
2

有一种自动测试使用标准测试等模块Perl程序是否从例如读取输入STDIN正确吗?例如。测试一个从STDIN中读取两个整数并打印它们的总和的程序。Perl:测试输入阅读器?

+0

'使用数据::自卸车;打印翻斗车'? – TLP

+0

首先,标准输入重定向到一个文件,甚至在你的测试脚本一个数据段。其次,验证您的阅读是否产生了期望值。 – DavidO

+0

谢谢,这正是我想做的事!刚刚看到了这一点,但我最终设法自己弄清楚了:测试是否打开一个测试输入为STDIN的文件;这样,输入会自动传送到正在测试的程序中,就好像它们来自命令行一样。 – draeklae

回答

4

这不是100%清楚你的意思,我会asnswer假设你想要写一个测试脚本,测试你的主程序,它作为测试的一部分,需要有通过STDIN通过测试输入数据是什么。

您可以轻松地做到这一点,如果你的程序输出是什么读取。你不需要特殊的测试模块 - 简单地说:

  1. 打电话给你的程序通过系统调用your're测试

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

      • IPC::Open2模块经由管道文件句柄打开两侧,

      • ...或者,建立你的命令,从文件重定向到/和读/写文件的测试脚本从您在上一步中收集到的测试程序

  2. 检查STDOUT确保打印出正确的值。