2013-07-02 39 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確保打印出正確的值。