Tôi đã nâng cấp toàn bộ ngăn xếp của mình từ dự án dựa trên Rails 3.0 lên 3.1. Tôi có thông số kỹ thuật nhưng các tính năng của tôi hiện đang hơi khó tính. Vấn đề Tôi hiện đang có là bước này:Capybara: Cách xác nhận số lượng phần tử đã cho tồn tại
Then /^I should see (\d+) menu item(?:s)? within "([^"]*)"$/ do |count, selector|
page.find(:css, selector, :count => count.to_i)
end
Và trong các tính năng riêng của mình, tôi có thể đặt:
Then I should see 5 menu items within "tr#menu_item_row"
các thông điệp mà tôi nhận được là:
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"'
As far như tôi có thể nói, 5 yếu tố phù hợp với 5 yếu tố thực sự được tìm thấy. Tôi đã viết mã này sai hay có điều gì đó thay đổi lớn? Cảm ơn!
': prefer_exact' có thể được coi là hành vi xấu như bạn có thể thấy trong bài đăng trên blog mà bạn đã liên kết và được thêm vào trong Capybara 2.1 như nhiều người nói rằng họ cần nó cho tính tương thích ngược với mã được viết cho 1.x . Tôi nghĩ rằng đó là một ý tưởng tồi để tư vấn để sử dụng nó. –
vì vậy tôi đã tham chiếu và liên kết với bài viết mà tôi xứng đáng được bỏ phiếu? Tôi chỉ đơn giản là nói với người hỏi tại sao điều này xảy ra và những gì có thể được thực hiện về nó. Tôi không nói với người hỏi rằng họ không nên cập nhật tính năng này và chỉ làm theo cách này. Chỉ cần chỉ ra rằng câu hỏi là "đã có điều gì đó thay đổi?" – fontno
Thăng hạng vì nó thực sự tập trung sự chú ý của tôi vào sự khác biệt giữa cài đặt 'match'. –