Как бы вы написали шаг Cucumber для редактирования определенного экземпляра ресурса, когда в представлении их много? - PullRequest
0 голосов
/ 19 сентября 2011

Допустим, у вас есть ресурс под названием Article.На странице указателя у вас есть много статей в списке.В одном сценарии у меня есть этот шаг Cucumber:

When /^I activate the edit article switch for the article "(.+)"$/ do |name|

Я пытаюсь идентифицировать эту конкретную статью - т.е. нажимая кнопку «редактировать» для этой конкретной статьи .Я думал об использовании «внутри» помощника капибары, но я не чувствую, что это решение.Мне нужно как-то найти название статьи на странице, а затем нажать кнопку редактирования этой статьи ... понимаете, что я имею в виду?

Если у кого-то есть чистое решение, я был бы признателен, если бы знал об этом.Заранее спасибо.

1 Ответ

2 голосов
/ 19 сентября 2011

Что я делаю для такого рода вещей, так это напишу такой шаг:

When I edit article "Some article name or id"

Тогда мое определение шага выглядит так:

When %|I edit article "$article_name"| do |article_name|
  article = Article.find_by_name(article_name)
  within "#article_#{article.id}" do
    #do whatever you need to do for that article
    click "Edit"
  end
end

В моих представлениях я четко определяю идентификатор для некоторого родительского элемента, который будет достаточно охватывать вызовы, подобные этому. Этот шаблон избавляет вас от необходимости слишком сильно пачкаться в самих куках, но при этом дает вам определенную степень гибкости. Например:

<% @articles.each do |article| %>
  <div id="article_<%= article.id %>">
     Stuff in here <%= link_to "Edit", edit_article_path(article) %>
  </div>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...