从直接的ruby代码中,我试图在我的工厂规范中实现一个序列,以做一些类似于这个代码的ruby块的事情
domains = %w(gmail.com yahoo.com msn.com)
d = []
100.times do |n|
d << domains[n % domains.length]
end
puts d // this will print restricted strings from the array 100 times
这就是我试图用rspec中的序列来实现的,以测试我的代码在数据库中创建了100条记录后的工作情况,该数据库已经在模型中进行了验证
这是我的工厂
trait :random do
sequence(:local_government_area) do |l|
lga = %w(zuru fakai sakaba)
lga_to_save = []
100.times do |n|
lga_to_save << lga[n % lga.length]
end
puts lga_to_save
puts l
local_government_area { lga_to_save }
end
end
end
它被称为
let(:hundred_students) { create_list(:biodata, 100, :random) }
我知道我的代码不接近,因为我一直在调试,但我需要知道如何将create_list
限制为strings
的array
,用于trait
您的序列代码不应该担心记录的数量,因为create_list
已经做到了这一点。试试这个:
trait :random do
sequence(:local_government_area) do |n|
lga = %w(zuru fakai sakaba)
lga[n % lga.length]
end
end
然后:
let(:hundred_students) { create_list(:biodata, 100, :random) }