0

我正在关注 Michael Hartl 的 Rails 教程,并且在第 8.2.6 节退出时遇到意外错误/失败的测试 - http://ruby.railstutorial.org/chapters/sign-in-sign-out?version =3.2#sec:signing_out

我用于我的 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)>

我确认我的代码与 Hartl 教程中的示例完全一样,但我的测试仍然失败。想法?

4

1 回答 1

0

capybara方法只接受一个参数,您要激活的链接的名称。所以我认为代码应该只是:click_link

before { click_link "Sign Out" }

您拥有的其余代码看起来像 w 视图中 sign_out 操作的结尾:

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

通过使用 Capybara 单击链接,它应该已经在视图中使用了上面的代码,所以最后一个垃圾似乎是重复的。

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

于 2012-02-25T01:07:28.757 回答