Испытание рельсов на автозаполнение огурцом - PullRequest
2 голосов
/ 22 марта 2010

Мне нужно проверить поле автозаполнения с огурцом.Как я могу это сделать?Я попытался

  Scenario: Using Autocomplete   
  Given I am on the home page
  And there are the following users:
    |id |name   |
    |1  |foo    |
  When I fill in "name" with "f" 
  Then I should see "foo" 

Но тогда это не удалось, потому что ожидалось, что содержимое следующего элемента будет включать "foo"Есть идеи?

Ответы [ 2 ]

5 голосов
/ 07 августа 2010

Вам нужно использовать драйвер с поддержкой JS для вашего теста. Если вы используете webrat o capybara, вы можете попробовать использовать селен.

Then I should see "foo" 

Это не работает при использовании веб-шага по умолчанию, поскольку DOM не обновлялся при поиске текста. Есть 2 варианта:

Вариант 1: Ожидание

And I wait for 1 second
Then I should see "foo"

Вам нужно реализовать этот шаг для вызова sleep (n)

Вариант 2: выборочное местоположение

Метод локации Капибары покажет, присутствует ли цель в DOM. Если нет, он подождет несколько секунд и попробует еще раз, и выдаст ошибку, если ее все еще нет.

Then I should see the following autocomplete options:
| foo |

Вот так выглядит реализация шагов для меня:

Then /^I should see the following autocomplete options:$/ do |table|
  table.raw.each do |row|
    locate(:xpath, "//a[text()='#{row[0]}']")
  end
end

Если вам нужна более подробная информация по этому вопросу, я написал пост в блоге с примерами и некоторыми фрагментами, также касающимися нажатия представленных вариантов автозаполнения:

http://www.aentos.com/blog/testing-ajax-autocomplete-fields-cucumber-and-capybara

0 голосов
/ 29 марта 2010

Автозаполнение использует Javascript, чтобы установить значение текстового поля («имя» в вашем случае).Поскольку Cucumber использует Webrat для проверки ответа, возвращаемого с сервера, а Webrat не поддерживает Javascript, ваш сценарий не выполняется.

Cucumber может использовать Selenium для автоматизации тестирования Javascript и проверки того, чтоожидаемые значения подключаются. Подробнее здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...