Ho aggiornato l'intero stack da un progetto basato su Rails 3.0 a 3.1. Ho delle specifiche che passano ma i miei lineamenti sono ora un po 'pignoli. Il problema Attualmente sto avendo è questo passaggio:Capybara: come affermare un determinato numero di elementi esistenti
Then /^I should see (\d+) menu item(?:s)? within "([^"]*)"$/ do |count, selector|
page.find(:css, selector, :count => count.to_i)
end
E nel film stesso, potrei mettere:
Then I should see 5 menu items within "tr#menu_item_row"
Il messaggio che ottengo è:
Then I should see 5 menu items within "tr#menu_item_row" # features/step_definitions/admin_menu_steps.rb:1
Ambiguous match, found 5 elements matching css "tr#menu_item_row" (Capybara::Ambiguous)
./features/step_definitions/admin_menu_steps.rb:2:in `/^I should see (\d+) menu item(?:s)? within "([^"]*)"$/'
features/admin_menu.feature:30:in `Then I should see 5 menu items within "tr#menu_item_row"'
Per quanto come posso dire, i 5 elementi corrispondono ai 5 effettivamente trovati. Ho sbagliato a scrivere questo codice o è cambiato qualcosa di importante? Grazie!
': prefer_exact' può essere considerato una cattiva pratica come si può vedere nel post di blog a cui è stato collegato ed è stato aggiunto in Capybara 2.1 in quanto molte persone hanno detto che ne hanno bisogno per compatibilità all'indietro con il proprio codice scritto per 1.x . Penso che sia una cattiva idea consigli di usarlo. –
quindi, perché ho fatto riferimento e collegato all'articolo mi merito un voto negativo? Stavo semplicemente dicendo all'interrogante perché questo è successo e cosa si poteva fare al riguardo. Non ho detto all'interrogante che non avrebbero dovuto aggiornare la funzione e lo avrebbero fatto solo in questo modo. Basta sottolinearlo come la domanda era "ha fatto qualcosa cambiare?" – fontno
L'upvoting perché ha effettivamente focalizzato la mia attenzione sulla differenza tra le impostazioni 'match'. –