2013-09-25 3 views
0

Я пытаюсь написать тестовый сценарий для удаления, но я не понимаю, почему он не получает ссылку на уничтожение.Невозможно найти ссылку «Destroy»

Вот мой тестовый сценарий:

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%>

Мой шаг Defination для связи:

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

click_link(link) 

end 

Пожалуйста, кто-нибудь предложит определение шага для ссылки на удаление, пожалуйста, исправьте меня, если это ошибка в моем сценарии.

спасибо.

+0

Вы можете разместить шаг, который ищет ссылку? –

+0

Можете ли вы опубликовать содержимое ./features/step_definitions/event_steps.rb:32:in '/^I follow" ([^ \ "] *)" $/' – techvineet

+0

@techvineet это содержимое Когда/^ я следую "([^ \"] *) "$/do | ссылка | click_link (link) end – atish

ответ

0

Я нашел ответ для уничтожения ссылки. Он не поддержит webrat, поэтому я удалил webrat и использовал capybara, и моя проблема решена.

Вот шаг:

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: (. *)

Когда/^ я разрушаю, что $/сделать | элементом 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 </code> 
Смежные вопросы