Я использую Cucumber / Capybara с Rails 3 и пытаюсь проверить существование изображения после загрузки. Я не уверен, как проверить URL-адрес изображения, чтобы проверить его.
У меня есть следующий сценарий:
Scenario: Create new listing
Given I am on the new listing page
When I fill in "listing_name" with "Amy Johnson Photography"
And I attach the file "features/support/test_image.jpg" to "listing_images_attributes_0_photo"
And I press "Create"
Then I should see "Amy Johnson Photography"
And I should see the image "test_image.jpg"
Все проходит, кроме последнего шага.
Я пробовал это для определения шага, которое прекрасно работает, если текст на странице, но не для URL изображения:
Then /^I should see the image "(.+)"$/ do |image|
if page.respond_to? :should
page.should have_content(image)
else
assert page.has_content?(image)
end
end
Тогда я также попробовал что-то вроде этого определения шага:
Then /^I should see the image "(.+)"$/ do |image|
html = Nokogiri::HTML(response.body)
tags = html.xpath('//img[@src="/public/images/foo.png"]')
# tags.length.should eql(num_of_images)
end
, что приводит к следующей ошибке:
And I should see the image "test_image.jpg" # features/step_definitions/listing_steps.rb:41
undefined method `body' for nil:NilClass (NoMethodError)
./features/step_definitions/listing_steps.rb:42:in `/^I should see the image "(.+)"$/'
features/manage_listings.feature:24:in `And I should see the image "test_image.jpg"'
Я предполагаю, что вам нужен шаг нокигири, чтобы найти это правильно. Или, если есть лучший способ, я открыт для предложений. Как я могу проверить, что загруженное изображение находится на странице? Спасибо.