[英]Where to put common Unit Test code in ruby on rails environment?
使用Rails 3.0,我似乎在所有單元測試中都調用了一些代碼。
是否有放置共享的單元測試代碼的通用地方,而這些代碼不會同時包含在單元測試和功能測試中? 我只希望將其合並到所需的文件中,僅進行單元測試。
我是一般測試實踐的新手。 在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.