2016-02-12 37 views
-3

我有紅寶石我的團隊的Rails代碼,現在我需要做的使用RSpec的規格的單元測試。我已經瀏覽了幾個網站,但沒有得到如何使用它的完美鏡頭。任何人都可以請幫助我使用rspec的步驟。還有如何在測試數據庫中創建用戶。請指導我,我是rspec的新手。什麼是預requisties,我需要的軌道運行rspec的?

+0

有關於如何使用rspec的書籍。這個網站的問題太廣泛了。還有一點 - 你應該先寫你的測試,然後編寫一個代碼來滿足它們。 – BroiSatse

回答

1

上設置RSpec的一個很好的指導,從上rspec repo page on GitHub.自述得到。

但是我個人而言,下面是我的組合大多使用:

  1. Database cleaner:對於清潔分貝顧名思義。設置此功能有很好的指導性爲Avdi on his blog here給出。

注意:本博客建議將數據庫清理程序的配置置於支持目錄中的單獨文件中。如果這樣做,記得要取消對rails_helper.rb文件

# Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f } 

這將確保支持目錄下的所有文件在測試服需要內以下行。

  1. FactoryGirls:這是爲了生成測試記錄(用戶等),就像你問的問題。一個足夠好的指導是對getting started document here.
  2. 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?方法將根據這一點,與它們各自的塊...而其他方法在模型中的其他測試將相應地在第一個之下。

希望我已經能夠在這裏爲您解決這個問題。

相關問題