我有紅寶石我的團隊的Rails代碼,現在我需要做的使用RSpec的規格的單元測試。我已經瀏覽了幾個網站,但沒有得到如何使用它的完美鏡頭。任何人都可以請幫助我使用rspec的步驟。還有如何在測試數據庫中創建用戶。請指導我,我是rspec的新手。什麼是預requisties,我需要的軌道運行rspec的?
-3
A
回答
1
上設置RSpec的一個很好的指導,從上rspec repo page on GitHub.自述得到。
但是我個人而言,下面是我的組合大多使用:
- Database cleaner:對於清潔分貝顧名思義。設置此功能有很好的指導性爲Avdi on his blog here給出。
注意:本博客建議將數據庫清理程序的配置置於支持目錄中的單獨文件中。如果這樣做,記得要取消對rails_helper.rb
文件
# Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
這將確保支持目錄下的所有文件在測試服需要內以下行。
- FactoryGirls:這是爲了生成測試記錄(用戶等),就像你問的問題。一個足夠好的指導是對getting started document here.
- Faker給出:我用這個建設我的記錄產生
Fake
隨機值。例如:測試用戶的名字,姓氏,電子郵件,密碼等,而不是硬編碼這些值。使用如在回購
上述正確武裝上的自述說,這是直接,第一Rspec的規格準備好被寫入。
規格基本上可以分爲兩個步驟:
- 說明
- 預期
詳細說明的總結什麼西裝正在檢測,而一個預期是正常的預期結果。
說明也可以嵌套在其他說明中。
一個Rspec的測試的一個例子是:
require 'rails_helper'
describe TextMessage do
describe "#failed?" do
it "returns true" do
text = FactoryGirl.create(:text_message, :not_delivered)
expect(text.send(:failed?)).to be_truthy
end
end
end
首先,所需的rails_helper
文件。這是所有測試配置所在的地方。這個文件是自動生成的,當rails generate rspec:install
命令是從他們的回購RSpec的安裝指南運行。
接着,我有一個描述塊describe TextMessage do;end
這是描述我的模型,該模型是TextMessage
在這種情況下
接着,我已經嵌套在第一描述的方法中的另一種描述塊(失敗?)在我的TextMessage模型:describe "#failed?" do;end
然後,我有期望塊這是我的主要測試:
it "returns true" do
text = FactoryGirl.create(:text_message, :not_delivered)
expect(text.send(:failed?)).to be_truthy
end
所有其他測試爲failed?
方法將根據這一點,與它們各自的塊...而其他方法在模型中的其他測試將相應地在第一個之下。
希望我已經能夠在這裏爲您解決這個問題。
相關問題
- 1. 軌道4 RSpec的警告:如果您需要「MINITEST /自動運行」,而不是
- 2. Rspec的軌道
- 3. 如何當我與軌道3運行rspec的2格式RSpec的2輸出與軌道3
- 4. 在rspec的軌道
- 5. 什麼是可靠的,爲什麼要在軌道
- 6. 什麼樣的Windows帳戶是軌道運行在
- 7. 我爲什麼要用軌道模糊我的記錄的ID?
- 8. 什麼我需要運行哨兵我的Django的網站
- 9. 運行Tomcat + Mysql需要的最低系統要求是什麼
- 10. 爲什麼不我需要需要「水豚/軌」中spec_helper
- 11. 什麼是在軌道3
- 12. php和newlines:我需要知道什麼?
- 13. 我的代碼需要2000MB +才能運行,不知道爲什麼
- 14. 爲什麼我的環境需要我運行bundle exec?
- 15. 爲什麼要使用摩卡軌道?什麼是
- 16. 檢查運行我的代碼需要什麼版本的.NET
- 17. 軌道如何知道:什麼是?
- 18. 什麼是silverlight開發人員運行時?爲什麼我們需要它?
- 19. 什麼是軌道中的NoMethodError?
- 20. 爲什麼我的腳本需要永久運行?
- 21. 人們需要什麼來運行我的應用程序?
- 22. 爲什麼我需要用新的子程序運行Walk?
- 23. 爲什麼我的查詢需要2分鐘才能運行?
- 24. 什麼的DLL我需要
- 25. 運行軌道3.1.1
- 26. 運行在軌道
- 27. 無論什麼時候沒有運行的軌道
- 28. 我需要知道一個進程是否正在運行
- 29. 移動需要能夠運行JavaFX的是什麼?
- 30. 學習Git。需要知道我是否在正確的軌道上
有關於如何使用rspec的書籍。這個網站的問題太廣泛了。還有一點 - 你應該先寫你的測試,然後編寫一個代碼來滿足它們。 – BroiSatse