Capybara click_link方法补丁

时间:2014-09-24 09:57:30

标签: testing capybara rspec3

如何告诉capybara发送补丁方法? 默认发生得到。

     resources :users do
      member do
       patch :toggle_moderator
     end

测试

  describe 'toggle moderator' do
   it 'remove moderator privilegue', js: true do
     click_on("toogle")
     expect(page).to have_css('.icon-star')
   end
  end

错误:

Failure/Error: Unable to find matching line from backtrace
 ActionController::RoutingError:
   No route matches [GET] "/users/5/toggle_moderator"

1 个答案:

答案 0 :(得分:0)

这是您网页中的错误。 Capybara默认发送GET请求,因为这是浏览器发送的内容,而Capybara正在模拟浏览器。

要发送PATCH请求,您需要为链接的点击处理程序添加一些JavaScript代码。如果你这样做,可能会有一个导致这种情况发生的错误。