Preface: Normally, you would not need this in integrations tests (probably that's why it is so hard to achieve), because it is no actual "integration testing". If you use this step, know what you are doing.
Destroying a record with Capybara is not as easy as calling visit user_path(user, method: :delete), because 
  RackTest's visit can only perform GET requests
  
    Show archive.org snapshot
  
.
With this step you can destroy a records using either Selenium or RackTest. Example: When I destroy that user # => deletes User.last.
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 # e.g. Capybara::Selenium::Driver
    visit send(path, element, { method: :delete })
  end
end
Posted by Dominik Schöler to makandra dev (2013-09-03 15:48)