J'ai un modèle de groupe que je teste en utilisant des spécifications de demande avec Capybara et en générant les données avec Factory Girl.
Dans mon usine groups.rb...
FactoryGirl.define do
factory :group do
sequence :name do |n|
"Group#{n}"
end
expiry Date.today + 2.weeks
end
end
Et j'utilise ceci dans mon fichier groups_spec.rb...
describe "Groups" do
describe "GET /groups" do
it "an admin user can create a new group" do
user = Factory.create(:user, :is_admin => true )
group = Factory.build(:group)
visit root_url
fill_in "Email", :with => user.email
fill_in "Password", :with => user.password
click_button "Login"
click_link "Groups"
click_link "New Group"
fill_in "Name", :with => group.name
# need to change the below to use the Factory eg select Date.new(group.expiry)
select "2014", :from => "group_expiry_1i"
select "June", :from => "group_expiry_2i"
select "1", :from => "group_expiry_3i"
click_button "Create Group"
page.should have_content("Group was successfully created.")
page.should have_content(group.name)
end
end
end
Vous voyez donc que ce n'est pas une bonne façon de faire le test car je n'utilise pas l'expiration générée par l'usine. Quelqu'un sait-il comment saisir correctement la date d'expiration dans le formulaire ?