Использование click_link со сценарием огурца - PullRequest
1 голос
/ 07 июня 2011

У меня есть следующий файл Feature, который пытается зайти на страницу, выберите ссылку, затем отредактируйте данные пользователя.

Scenario: Edit an existing member of the club
    Given I go to the member list page
    And I choose the first item
    And I fill in the "First Name" with "Bloggs
    When I press "Update"
    Then I should be on the member list page
    And I should see "Bloggs"

, а файл member_step.rb содержит

Given /^I choose the first item$/ do
    #save_and_open_page
    visit members_path
    click_link "1"
end

Мой файл rout.rb имеет

Gfs::Application.routes.draw do
   resources :members
end

Проблема в том, что я не могу заставить шаг click_link "1" работать.Предполагается, что он будет

  1. Перейти к странице индекса '/ members'
  2. Страница индекса отображает список пользователей, каждый из которых имеет префикс с номером, то есть ссылкой.
  3. Выберите ссылку

Что я знаю, так это то, что на индексной странице отображается список, мой маршрут работает ('/ members), но мой Cucumber не работает, а я нет греясь во славе зелени .

Диагностика save_and_open_page показывает только заголовок страницы индекса, а не детали, как если бы контроллер не обращался к данным

Предложения приветствуются.

Ответы [ 3 ]

2 голосов
/ 07 июня 2011

Есть ли фон, где вы создаете данные участников? Если нет, возможно, данные не существуют.

Я бы также предложил добавить шаг вроде

And I should not see "Bloggs"

перед обновлением записи.

2 голосов
/ 07 июня 2011

Если я правильно понял ваш кьюк, вы действительно не увидите ссылку "1", потому что:

Given I go to the member list page <-- first step
And I choose the first item <-- second step

... который расширяется до:

Given I go to the member list page <-- first step
visit members_path
click_link "1"

why are you visiting the member's path after you just visited the member list page? you should be checking that you ARE in the member's path. Something like:


Given I have existing users(generate members here using factory or whatever)
And I go to the member list page( go to member page)
When I follow "1" (click the first member)
Then I should be on the "1"'s member page
When I fill in...etc you get the point

Надеюсь, это поможет!

0 голосов
/ 07 июня 2011

Я собираюсь предположить, что если IFF «1» является истинной ссылкой html, тогда вы можете рассмотреть возможность использования

And I follow "1"

Вы можете легко обернуть это в свой собственный синтаксис, чтобы сделать его более эстетичным, но шаг And I follow... - это тот, который вы получаете из коробки в web_steps.rb.

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

And I follow "1" within ".my-kickbutt-div"

Или что-то в этом роде.

Еще одна вещь, чтобы проверить. Если у вас включен @javascript, возможно, вы видите неправильные данные на странице save_and_open_page. Мое приложение имеет тяжелый javascript / ajax, и мне нужно открыть вывод в браузере с отключенным javascript, чтобы увидеть, что там действительно видно: P Возможно, это не ваша проблема, но на всякий случай ...

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