【发布时间】:2012-02-10 13:55:50
【问题描述】:
我正在使用 Cucumber 和 Capybara。我需要发出一个 HTTP DELETE 请求。以前使用webrat的特性,所以简单的声明一下
visit "/comment/" + comment_id, :delete
工作,但现在我正在使用 Capybara。
发出GET 请求的方法很简单:
get 'path'
并做一个发布请求:
page.driver.post 'path'
但是如何模拟DELETE 请求呢?
我发现 Capybara 使用的驱动程序是 Capybara::RackTest::Driver,如果有帮助的话。
我也试过了:
Capybara.current_session.driver.delete "/comments/" + comment_id
但这不起作用。
【问题讨论】:
-
您的网页上没有会触发删除的链接或按钮吗? Cucumber 特性应该是一个全栈验收测试。您的功能步骤应该带您完成应用程序的愉快流程。您应该点击链接并按下按钮并填写数据等,然后您可以通过这样做来触发删除。
-
当我编写新测试时,您的建议将是这样做的首选方式,但目前我正在从 webrat 迁移到 capybara。我不想通过重写来修改这 30 个左右的测试,我想先让它们使用 capybara 工作,然后可能会根据需要在以后重写。
-
真的很奇怪,因为这些方法包含在 RackTest 驱动程序中:github.com/jnicklas/capybara/blob/master/lib/capybara/rack_test/…
标签: ruby-on-rails cucumber integration-testing capybara