Rails教程 - Ch。 8 - 引发ArgumentError在RSpec的测试与我继迈克尔·哈特尔Rails的教程,我得到了意想不到的错误“前”线

问题描述:

/失败节8.2.6测试签约手续 - http://ruby.railstutorial.org/chapters/sign-in-sign-out?version=3.2#sec:signing_outRails教程 - Ch。 8 - 引发ArgumentError在RSpec的测试与我继迈克尔·哈特尔Rails的教程,我得到了意想不到的错误“前”线

的代码我用于我的RSpec测试失败可以在列表8.28中找到。下面的代码:

before { click_link "Sign out", method: :delete } 

是给下面的错误:

ArgumentError: wrong number of arguments (2 for 1) 
# (eval):2:in 'click_link' 
# ./spec/requests/authentication_pages_spec.rb:35:in 'block (5 levels) in <top (required)> 

我证实,我的代码是完全一样的,在哈特尔的教程中的例子显示,但我仍然得到一个失败的测试。思考?

capybara方法click_linkonly takes a single parameter,这是您想要激活的链接的名称。所以我觉得代码应该真的只能是:

before { click_link "Sign Out" } 

你必须看起来像thew鉴于SIGN_OUT动作结束的其余代码:

<%= link_to "Sign out", signout_path, method: => :delete %> 

通过使用水豚点击链接,它应该已经在视图中使用上面的代码,所以最后的垃圾看起来像重复。

我只是删除“方法::删除”,看看你得到什么。

+0

是的,刚刚在Twitter上得到了Michael Hartl的回复,确认它确实是一个bug。 https://twitter.com/#!/railstutorial/status/173211566425128960 – Nick 2012-02-25 01:30:40