我正在測試Ruby Rails網站,並希望開始使用單元和功能測試。什麼是啓動Ruby Rails網站的單元測試和功能測試的最佳方式?
回答
Cucumber和RSpec值得一看。他們鼓勵以基於示例的風格的behaviour-driven進行測試。
RSpec的是單位級測試庫:
describe "hello_world"
it "should say hello to the world" do
# RSpec comes with its own mock-object framework built in,
# though it lets you use others if you prefer
world = mock("World", :population => 6e9)
world.should_receive(:hello)
hello_world(world)
end
end
它有Rails的特殊支持(例如,它可以隔離測試模型,視圖和控制器),並可以取代Rails的內置測試機制。
黃瓜(原名RSpec的故事亞軍),讓你寫的(相當)簡單的英語高層次的驗收測試,你可以展示給(和同意)客戶,然後運行它們:
Story: Commenting on articles
As a visitor to the blog
I want to post comments on articles
So that I can have my 15 minutes of fame
Scenario: Post a new comment
Given I am viewing an article
When I add a comment "Me too!"
And I fill in the CAPTCHA correctly
Then I should see a comment "Me too!"
我的建議是(嚴重)只是繞過內置的軌道單元/功能測試的東西,並直接爲RSpec。
內置的Rails東西使用Test::Unit
框架,它附帶了ruby,它或多或少是JUnit/NUnit/AnyOtherUnit的直接端口。
我發現這些框架都非常繁瑣和煩人,導致對編寫單元測試的普遍冷漠,這顯然不是你想要在這裏獲得成功的。
RSpec的是一個不同的野獸,圍繞描述什麼你的代碼應該做的,而不是聲稱它已經確實做文章。它會改變你如何看待測試,並且你會做更多的樂趣。
如果我聽起來有點像一個迷,那只是因爲我真的相信RSpec是那麼好。我從對單元/功能測試的厭煩和厭倦變成了堅定的信奉者,幾乎完全是因爲rspec。
聽起來好像您已經編寫了您的應用程序,所以我不確定您會從使用RSpec
而不是Test::Unit
獲得鉅額獎金。無論如何,無論您選擇哪一個,您都會很快遇到另一個問題:管理設備和模擬(即您的測試「數據」)。所以看看Shoulda和Factory Girl。
即使應用程序已經寫好,我也會推薦使用RSpec而不是Test :: Unit,因爲沒有任何應用程序可以完成。你將要添加功能和重構代碼。獲得正確的測試習慣早將有助於使這些改動痛苦少
您還可以測試出一個Firefox的Web界面插件如http://selenium.openqa.org/
它會記錄點擊和文本輸入,然後回放並會檢查頁面是否有正確的顯示元素。
- 1. 什麼是測試查詢性能的最佳方式的Rails
- 2. 測試HTML5網站的最佳方式是什麼?
- 3. 單元測試的最佳方式DbProviderFactory
- 4. 單元測試異步方法的最佳方法是什麼?
- 5. 在Visual Studio 2010中測試移動網站的最佳方式是什麼?
- 6. 單元測試/集成測試GXT代碼的最佳方法是什麼?
- 7. 測試Rails REST XML API的最佳方式是什麼?
- 8. 測試rails應用程序的最佳方式是什麼?
- 9. 什麼是功能測試,單元測試,並與例如
- 10. 爲什麼進行單元測試和功能測試
- 11. 什麼是測試Web服務網關的最佳方式?
- 12. 什麼是單元測試構造函數的最佳方法?
- 13. 什麼是測試DOM中元素的最佳方式
- 14. 什麼是測試php網站的負載性能的方式?
- 15. 設置和測試Lambda API的最佳方式是什麼?
- 16. Rails組織單元測試的方式是什麼?
- 17. 在解決方案中構建單元測試的最佳方式是什麼?
- 18. Ruby on Rails單元測試
- 19. 什麼是功能測試?
- 20. 編輯和測試現有Ruby Gem(即Gollum)的最佳方式是什麼?
- 21. 單元測試Nodejs中發出的事件的最佳方式是什麼?
- 22. 單元測試生成圖像的代碼的最佳方式是什麼?
- 23. 使用spring,maven和hibernate進行單元測試時啓動HSQLDB的最佳方式是什麼?
- 24. Android單元測試的最佳做法?
- 25. 在Dart中編寫單元測試的最佳方式是什麼?
- 26. 什麼是單元測試COM端口abstracton庫的最佳方式?
- 27. 什麼是從多個線程進行單元測試的最佳方式?
- 28. 什麼是存儲靜態單元測試變量的最佳方式?
- 29. 爲REST API編寫單元測試的最佳方式是什麼?
- 30. 使用新的測試庫設置飛鏢單元測試的最佳方式是什麼?
驗收測試的第二個API已從RSpec中取出,現在稱爲「黃瓜」。 – 2008-12-02 10:34:53
謝謝 - 我已編輯過最新的答案。 – 2008-12-22 19:36:51