簡體   English   中英

命令行程序Ruby / RSpec的功能測試

[英]Feature test for command line program Ruby / RSpec

我有一個腳本,希望在使用RSpec的某些測試中運行該腳本,以測試其輸入/輸出。

例如,

我有一個使用“ ruby​​ script.rb”運行的腳本“ script.rb”

然后,腳本輸出到STDOUT,並使用STDIN進行輸入。 我想使用RSPec對此進行測試,並檢查一切是否正常(功能測試)。 我將如何去做呢? 只需在RSPec中執行'ruby script.rb',然后測試輸出是否符合我的期望,並接受STDIN的輸入?

由於您想將腳本作為黑匣子進行測試(僅STDIN / STDOUT),因此可以通過system()調用來完美地進行此操作:只需確保清除腳本所留下的所有副作用(例如臨時文件)。

編輯 :只需創建一些具有所需內容的文件,例如stdin.txt

之后,您可以通過以下方式運行命令:

system('cat stdin.txt | ruby myscript.rb')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM