簡體   English   中英

將通用單元測試代碼放在Rails環境中的紅寶石中的哪里?

[英]Where to put common Unit Test code in ruby on rails environment?

使用Rails 3.0,我似乎在所有單元測試中都調用了一些代碼。

  1. 是否有放置共享的單元測試代碼的通用地方,而這些代碼不會同時包含在單元測試和功能測試中? 我只希望將其合並到所需的文件中,僅進行單元測試。

  2. 我是一般測試實踐的新手。 在Rails中測試驗證是否很常見(例如,測試:validates_presence_of:name)? 我測試模型驗證的大多數函數基本上都是相同的(只是換入和換出正確的燈具和屬性名稱)。 看起來不是很干。 尋找一種重構的方法。

謝謝。

您可以將代碼放在test / test_helper.rb文件中。 您應該已經找到了一個看起來像這樣的代碼片段

class ActiveSupport::TestCase
  self.use_transactional_fixtures = true
  self.use_instantiated_fixtures  = false
end

如果在所有測試中都應使用該代碼,則可以在ActiveSupport::TestCase類中添加方法。 否則,將它們包裝到Module並在需要時混合使用模塊。

這是一個很好的做法,即測試驗證而不是測試驗證本身( validates_presence_of宏已經在Rails代碼庫中進行了測試),但是要確保代碼中的機會不會影響您的類業務。

例如,可能存在僅需要在特定事件中觸發的驗證。 或者,您可能要確保沒有人刪除針對該特定模型的超級機密驗證。

如果您想測試模型驗證,我建議您檢查shoulda Shoulda提供了幾種方便的方法來測試您的驗證。

class PostTest < ActiveSupport::TestCase

  should belong_to(:user)
  should validates_presence_of(:id)

end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM