有一种自动测试使用标准测试等模块Perl程序是否从例如读取输入STDIN正确吗?例如。测试一个从STDIN中读取两个整数并打印它们的总和的程序。Perl:测试输入阅读器?
2
A
回答
4
这不是100%清楚你的意思,我会asnswer假设你想要写一个测试脚本,测试你的主程序,它作为测试的一部分,需要有通过STDIN通过测试输入数据是什么。
您可以轻松地做到这一点,如果你的程序输出是什么读取。你不需要特殊的测试模块 - 简单地说:
打电话给你的程序通过系统调用your're测试
测试程序都重定向STDIN和STDOUT到你的测试脚本,使用
IPC::Open2
模块经由管道文件句柄打开两侧,...或者,建立你的命令,从文件重定向到/和读/写文件的测试脚本从您在上一步中收集到的测试程序
检查STDOUT确保打印出正确的值。
0
如果你想测试,如果标准输入连接到终端,使用-t
,如:
if(-t STDIN){
print "Input from a terminal\n";
}else{
print "Input from a file or pipe\n";
}
见http://perldoc.perl.org/perlfunc.html#Alphabetical-Listing-of-Perl-Functions
相关问题
- 1. 缓冲阅读器测试
- 2. 阅读的Perl CGI参数(输入)
- 3. 阅读输入
- 4. EitherT与阅读器概括阅读器输入
- 5. RSS阅读器单元测试
- 6. 阅读MIDI输入
- 7. 阅读System.out Java测试
- 8. 阅读文本测试
- 9. 阅读从python到阅读器的输入字符串
- 10. 测试从输入流中读取缓冲读取器
- 11. 如何阅读c输入输入
- 12. 阅读使用Perl
- 13. 如何测试“只读”输入字段
- 14. 阅读从.txt输入C++
- 15. 阅读输入反斜杠
- 16. 使用Prolog阅读输入
- 17. 阅读用户输入
- 18. Vim:错误阅读输入
- 19. 阅读输入引脚(Teensy)
- 20. 阅读微调输入
- 21. 阅读管道输入
- 22. 阅读字符串输入
- 23. 阅读全文输入
- 24. 逐行阅读输入流
- 25. 阅读输入键盘
- 26. 阅读()不等待输入
- 27. 阅读输入文件java
- 28. 如何阅读串入在Perl
- 29. NFC阅读器写入器
- 30. 阅读()从标准输入读取流
'使用数据::自卸车;打印翻斗车'? –
TLP
首先,标准输入重定向到一个文件,甚至在你的测试脚本一个数据段。其次,验证您的阅读是否产生了期望值。 – DavidO
谢谢,这正是我想做的事!刚刚看到了这一点,但我最终设法自己弄清楚了:测试是否打开一个测试输入为STDIN的文件;这样,输入会自动传送到正在测试的程序中,就好像它们来自命令行一样。 – draeklae