以紅寶石的方式做這個更優雅的方式?我想這是件好事:創建一個數組的最佳方式是以同樣的方式生成多個對象?
([0]*5).collect { Factory :customer_pj }
或
(1..5).to_a.collect { Factory :customer_pj }
我的目標是5個初始化客戶並投入陣列。我碰巧在一個rspec測試中在let
中這樣做。
以紅寶石的方式做這個更優雅的方式?我想這是件好事:創建一個數組的最佳方式是以同樣的方式生成多個對象?
([0]*5).collect { Factory :customer_pj }
或
(1..5).to_a.collect { Factory :customer_pj }
我的目標是5個初始化客戶並投入陣列。我碰巧在一個rspec測試中在let
中這樣做。
let(:customers) do
Array.new(5){ Factory :customer_pj }
end
由於安德魯·馬歇爾編輯的問題,相關部分變成了這樣:
Array.new(5){ Factory :customer_pj }
這就是所有維度的軟件質量... –
5.times.map { Factory :customer_pj }
它太棒了!但意味着隱式地創建數組,就像我的方式。但你的它更優雅。 –
注意,在這樣的數據庫中創建許多對象,難免會讓你的測試很慢。 –
好吧,我使用DatabaseCleaner.clean,感謝您提供有關 –
的警告信息無論您的清理與否都無關緊要,觸擊數據庫是您在測試中可以做的最慢的事情之一,而且多次執行的次數會更糟。 –