0

I'm trying to get webrat to select a radio button from a list, using cucumber.

I have this scenario:

Scenario: Update an existing article
    Given I have an article with title Big Bananas and body text Big yellow bananas are good for you
    And I am on the list of articles
    When I choose "Big Bananas"
    And press "Update article"
    And I fill in "Title" with "Massive Bananas"
    And I press "Save"
    Then I should have an article titled Massive Bananas
    And I should not have an article titled Big Bananas

And my view contains:

.
.
<% @articles.each do |article| %>
  <tr>
    <td><%= radio_button_tag "article", article.title %></td>
    <td><%= article.title %></td>
    <td>
      <%article.tags.each do |tag|%>
        <div><%= tag.name %></div>
      <%end%>
    </td>
  </tr>
<%end%>
.
.

The problem is that I need my radio button id to be the title of the article so web rat can pick it up from my cucumber scenario, at the moment my output for an item looks like:

<tr>
  <td><input id="article_big_bananas" name="article" type="radio" value="Big Bananas" /></td>  
  <td>Big Bananas</td>
  <td>  
    <div>fruit</div>
    <div>yellow</div>
  </td>
</tr>

Any ideas how I should do this?

4

1 回答 1

1

我现在解决了这个问题,但做法略有不同。我有一堆如果我将 ID 设置为 Edit_* 的编辑链接,其中 * 是文章 ID。然后我有一个黄瓜步骤,它使用名称从数据库中检索文章 ID,然后使用 ID Edit_* 跟随链接。这是我更新的代码:

特征

  Scenario: Update an existing article
    Given I have an article with title "Big Bananas" and body text "Big yellow bananas are good for you"
    And I am on the list of articles
    When I follow "Edit" for "Big Bananas"
    And press "Update article"
    And I fill in "Title" with "Massive Bananas"
    And I press "Save"
    Then I should have an article titled "Massive Bananas"
    And I should not have an article titled "Big Bananas"

看法

<table>
  <tr>
    <th>Articles</th>
    <th>Tags</th>
    <td></td>
  </tr>
  <% @articles.each do |article| %>
  <tr>
    <td><%= article.title %></td>
    <td>
      <%article.tags.each do |tag|%>
      <div><%= tag.name %></div>
      <%end%>
    </td>
    <td><%= link_to "Edit", {:controller => "articles", :action => "edit", :id => article.id}, :id => "Edit_" + article.id.to_s %></td>
  </tr>
  <%end%>
</table>
<%= link_to "New article", :action => "new" %>
<% if flash[:notice] %>
   <%= flash[:notice] %>
<% end %>

黄瓜步骤点击正确的编辑链接

When /^I follow "([^\"]*)" for "([^\"]*)"$/ do |link, article_title|
  article = Article.find_by_title article_title
  click_link link + "_" + article.id.to_s
end

希望对遇到同样问题的人有所帮助。

于 2010-09-11T09:58:07.500 回答