我正在編寫命令行命令,但想要TDD它。我將創建和刪除文件,並想知道是否有沙盒測試寶石或類似的東西。我使用ruby和rspec。TDD'ing命令行應用程序存在沙箱測試環境
0
A
回答
2
取決於你想要做什麼,但我通過嘲笑文件系統和STDIN/STDOUT來測試我的大部分命令行Ruby。使用依賴注入我常常落得沿着這些路線的東西:
describe Add do
it 'writes the result to standard out' do
console = mock('STDOUT')
console.should_receive(:puts).with('5')
Add.new(console).execute(3,2)
end
end
class Add
def initialize(out = STDOUT)
@out = out
end
def execute(command_line_args)
@out.puts(command_line_args.inject(:+))
end
end
Add.new.execute(ARGS)
通過使用默認值,我可以在測試中注入,但離開它的生產代碼。
希望有幫助!
布蘭登
0
由newgem
install_cucumber
發生器產生的模板使用,我想了不少的模式。看一看支持/ env.rb和支持/ common.rb文件,它會創建:
- https://github.com/drnic/newgem/blob/master/rubygems_generators/install_cucumber/templates/features/support/env.rb.erb
- https://github.com/drnic/newgem/blob/master/rubygems_generators/install_cucumber/templates/features/support/common.rb
測試中使用它看起來像這樣:
in_tmp_folder do
# The current directory is now a generated tmp folder.
# If you stick to relative paths, everything you do in here should be safe
end
上面鏈接的文件是爲了在黃瓜測試中使用它,但它可以很容易地適應你正在使用的任何框架。上面的env.rb在每次測試開始前刪除tmp文件夾。
0
相關問題
- 1. 在應用程序內購買錯誤,而在沙箱環境中測試
- 2. Google Analytics測試/沙箱環境?
- 3. C#沙箱環境
- 4. 命令行從Mac訪問iOS應用程序目錄(沙箱)
- 5. Mac OS應用程序,帶命令行工具的沙箱?
- 6. EAN沙箱在測試環境中使用哪個數據庫?
- 7. iOS應用內購買沙箱環境
- 8. 沙盒/測試環境?
- 9. Twitter應用程序開發有沒有沙箱環境?
- 10. iPhone:如何爲inAppPurchase創建應用程序沙箱環境
- 11. 在應用程序內購買沙箱測試誤差
- 12. 沙箱vs。生產環境
- 13. 辭退沙箱環境
- 14. 隔離沙箱環境
- 15. 使用貝寶沙箱測試應用程序
- 16. 如何在測試環境下運行web應用程序
- 17. 應用內購買測試mzfinance.InAppBuyLoginRequired_message(沙箱)
- 18. 如何測試在沙箱
- 19. 在應用購買中,使用沙箱進行測試
- 20. 如何在沙箱環境中運行程序時禁止系統調用?
- 21. 測試命令行實用程序
- 22. 沙箱環境iPhone在購買
- 23. 準備測試目標測試應用程序的環境
- 24. Dreamhost上的Django - 測試/沙盒環境
- 25. 在Android應用程序中購買應用程序,並使用沙箱帳戶進行測試
- 26. 在沙箱內啓動應用程序
- 27. 調試命令行應用程序
- 28. 如何使用maven測試命令行應用程序?
- 29. OS X:測試應用程序的存在從命令行開放
- 30. 爲Sharepoint設置沙箱開發環境
是什麼讓你說你不能使用rspec的爲你的命令行應用程序? –
對不起,我急着寫了我的問題。我的意思是要求任何TDD的SANDBOX環境。改變我的問題。抱歉。 – Brand
不確定你正在尋找什麼 - 「沙盒寶石」會爲你提供什麼? Yu已經可以讀/寫文件了。 –