0

我正在尝试为删除编写测试场景,但我不明白为什么它没有破坏链接。

这是我的测试场景:

 Scenario: User can delete kids
   Given I am on the kids page 
   When I Destroy kid
   Then I should see "Kid deleted successfully"
   Then one kid should not exist



<h1>Listing kids</h1>

<tr>
 <th>Kid name</th>
 <th colspan=3>Action</th>
 </tr>
<% @kids.each do |kid| %>
  <tr>
    <td><%= kid.kid_name %></td>
    <td><%= link_to 'Show', kid %></td>
    <td><%= link_to 'Edit', edit_kid_path(kid) %></td>
  <td><%= link_to 'Destroy', kid, method: :delete,
                        data: { confirm: 'Are you sure?' } %></td>
 </tr>

<% 结束 %>

<%= link_to 'New Kid', new_kid_path %>

我对链接的步骤定义:

When /^I Destroy kid$/ do |link|

   click_link(link)

 end

请有人建议删除链接的步骤定义,如果他们在我的场景中有一些错误,请纠正我。

谢谢你。

4

1 回答 1

0

I have found the answer for destroy link. It won't support webrat so i have removed webrat and used capybara and my issue get solved.

Here is the step:

Scenario: Delete Kid

Given I am on the kids page

And there is a kid with kid_name "john"

When I destroy that kid

Then I am on the kids page

step_defination:

When /^I destroy that (.*)$/ do |element_type|

   element = element_type.classify.constantize.last

   path = "#{element_type}_path"

   case page.driver

when Capybara::RackTest::Driver

   page.driver.submit :delete, send(path, element), {}

else 

  visit send(path, element, { method: :delete })

end

end </code> 
于 2013-09-30T06:33:51.983 回答