我有这样的场景:
Scenario: Display some articles
Given the following article pages:
| title | body |
| test | hello world |
我见过有些人创建xxx_steps.rb,然后动态生成数据。
当黄瓜运行时,它是否默认运行RAILS_ENV = test?是否会使用新的测试数据库为每次运行加载seeds.rb?如果没有,我怎么能这样做呢?
此外,黄瓜是否加载了/ step_definitions中的所有文件,或者是否存在某种约定,它会加载与当前要素文件匹配的所有文件?
答案 0 :(得分:1)
要动态生成数据,我建议您使用factory_girl gem。 您可以在控制其他人的同时自动生成字段。
在这种情况下,我有两个名称数组(first_names和last_names),我会随机创建Contact对象。
FactoryGirl.define do
factory :contact do
name {"#{first_names.sample} #{last_names.sample}"}
email {"#{name.downcase.gsub!(' ', '.')}@example.com"}
vat_number {rand(9999999).to_s.center(7, rand(9).to_s)}
gender {['male', 'female'].sample}
birth_date {Date.today - rand(200..40000)}
end
end
然后创建一个联系人我只需要FactoryGirl.create(:contact)来获取单个记录。 您可以根据自己的需要调整此示例。
在您的情况下,您可以像这样使用您的表:
Given /^the following article pages:$/ do |table|
table.hashes.each do |hash|
FactoryGirl.create(:article, hash
end