有一種自動測試使用標準測試等模塊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