Как мне найти изображение на странице с помощью Cucumber / Capybara в Rails 3

Я использую 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"'

Я предполагаю, что вам нужен шаг nokogiri, чтобы правильно его найти. Или, если есть лучший способ, я открыт для предложений. Как я могу убедиться, что только что загруженное изображение находится на странице? Спасибо.

23
задан Jamis Charles 27 January 2011 в 18:00
поделиться