Огурец с определениями таблиц и данными испытаний / семян - PullRequest
2 голосов
/ 13 ноября 2011

У меня есть такой сценарий:

Scenario:  Display some articles
  Given the following article pages:
    | title | body        |
    | test  | hello world |

Я видел, как некоторые люди создают xxx_steps.rb, а затем генерируют данные на лету.

Когда работает огурец, он работаетпо умолчанию с RAILS_ENV = тест?Будет ли он загружать seed.rb для каждого запуска свежим тестовым БД?Если нет, то как я могу сделать так, чтобы он это делал?

Кроме того, огурец загружает все файлы в / step_definitions или есть какое-то соглашение, согласно которому он загружает любые файлы, которые соответствуют текущему файлу объектов?

1 Ответ

1 голос
/ 18 февраля 2013

Для генерации данных на лету я бы посоветовал вам использовать гем factory_girl.Вы можете создавать поля автоматически, имея контроль над другими.

В этом случае у меня есть два массива имен (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
...