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

リンクを破壊するための答えを見つけました。Webrat をサポートしないため、Webrat を削除してカピバラを使用すると、問題が解決しました。

手順は次のとおりです。

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

ステップ定義:

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 に答える