2
A
回答
2
您應該看看aruba,它允許您使用Cucumber驅動命令行應用程序開發,在封面下使用RSpec。它處理正在執行的程序並捕獲它們的輸出和退出狀態,這對你自己來說可能很痛苦。舉個例子:
Given the file "foo.txt" exists
When I successfully execute `cp foo.txt bar.txt`
Then a file named "bar.txt" should exist
And the file "bar.txt" should the same contents as "foo.txt"
阿魯巴爲您提供的第二步和第三步,你所提供的其他:
CONTENTS = 'some contents'
Given /^the file "([^"]*)" exists$/ do |file|
File.open(file,'w') { |file| file.puts(CONTENTS) }
end
Then /^the file "([^"]*)" should the same contents as "([^"]*)"$/ do |dest_file,source_file|
contents = File.read(dest_file)
contents.should == CONTENTS
end
還有很多更棘手的問題,以測試命令行應用程序,但阿魯巴是一個大幫助
+0
可能是我的問題沒有妥善安置,但這是我一直在尋找的感謝! – pankajdoharey
6
如果你想運行就可以使用周圍的命令反引號和具有字符串的命令返回:
`ruby /path/to/my_command.rb arg1 arg2`.should == "something"
但我個人這種風格的測試限制在你的測試非常有限的子集。這些都是集成測試,不僅僅是單元測試,這並不意味着你不應該寫它們,但你應該先測試一個稍低的級別。
但是,如果能夠在較低級別測試您的命令,則需要以易於從中抽取單個單元的方式對其進行構造。如果你的腳本是一個很大的程序腳本,那麼你可能做不了多少事情,但是如果它是由表示它將運行的各種命令的類組成的,那麼你可以在shell中不執行命令的情況下測試這些類。
0
關注瑞安比格的pilot screencast這給測試一些好的建議駕駛香草紅寶石應用
相關問題
- 1. 如何編寫支持製表符完成的Ruby命令行應用程序?
- 2. 如何爲命令行應用程序編寫Python綁定
- 3. 如何編寫一個OSGI命令行應用程序
- 4. 如何編寫一個響應命令行輸入的程序?
- 5. 如何在ruby中編寫命令行管道
- 6. 如何使用pager製作ruby命令行應用程序?
- 7. 命令行程序的功能測試Ruby/RSpec
- 8. 編寫執行linux命令的android應用程序
- 9. 編譯NodeJS命令行應用程序
- 10. 命令行編譯iPhone應用程序
- 11. on Rails應用程序執行在Ruby中sudo命令
- 12. 在Ruby命令行應用程序中處理數據存儲
- 13. 如何在安裝應用程序或卸載應用程序之前編寫要執行的命令?
- 14. 在控制檯應用程序中編寫cmd命令
- 15. 爲命令行應用程序編寫前端GUI
- 16. 如何在ruby中編寫web /應用程序服務器?
- 17. 讓Thor抱怨Ruby命令行應用程序中拼寫錯誤的選項?
- 18. 如何爲使用Ruby編寫的Ruby命令行實用程序提供配置文件?
- 19. 如何編寫命令行發佈到Twitter的C#程序
- 20. 在Java中編寫命令行應用程序的最佳方式是什麼?
- 21. 在Rails應用程序中調用ruby中的tinyMCE命令
- 22. 如何在多個應用程序中編寫自定義django manage.py命令
- 23. 如何在命令行編譯的Swift應用程序中使用文件夾?
- 24. 如何編寫xulrunner應用程序來顯示輸出文件或命令行?
- 25. 用Perl和Ruby編寫應用程序?
- 26. 如果從cmd執行應用程序,寫入命令行
- 27. ruby on rails rspec命令
- 28. 在Mac OS X中爲命令行應用程序編寫GUI前端
- 29. 從Ruby應用程序在命令提示符下運行命令
- 30. 帶有後臺進程的命令行界面應用程序
我真的不知道你問這裏有什麼,RSpec的是一個測試框架,沒有那麼你用它來從字面上寫你的應用程序。 –
那麼什麼是測試驅動它..? – pankajdoharey
我不完全確定你想要在那裏問什麼,對不起。 –