【问题标题】:Argument error while running Cucumber tests in Rails在 Rails 中运行 Cucumber 测试时出现参数错误
【发布时间】:2018-04-18 12:51:26
【问题描述】:

我正在关注 semaphore 中的 Rails 测试手册,在运行 authentication_steps.rb 的测试时遇到了这个问题。

参数数量错误(给定 2,预期为 0)(ArgumentError)

给出上述错误的测试如下

When("I fill in the sign up form") do
    click_link "Sign up"
    fill_in "user_email", :with => "tester@testdomain.test"
    fill_in "user_password", :with => "pa$$word"
    fill_in "user_password_confirmation", :with => "pa$$word"
    click_button "Sign up"
end

下面是显示错误的图像。 capybara v3.0.2, cucumber v3.1.0

身份验证是使用设计实现的。

感谢所有帮助。提前致谢

【问题讨论】:

  • 我确定还有更多信息,例如哪个方法调用会导致此错误。
  • 我已用错误消息的屏幕截图更新了问题。请查看@Marek Lipka
  • 经过一些调试,错误出现在click_linkclick_button方法。

标签: ruby-on-rails cucumber capybara bdd


【解决方案1】:

Capybara 3 中的Driver::Node#click 方法已更改为能够支持偏移单击和按住键单击。驱动程序编写者现在需要更新他们的实现以接受这些参数。您无法确定您正在使用哪个驱动程序,但您使用的任何驱动程序的任何版本都与 Capybara 3.x 不兼容

将来使用 --backtrace 选项运行 Cucumber 测试应该会为您提供有关错误的完整堆栈跟踪,从而更容易调试问题。

【讨论】:

  • 你是对的。降级到 Capybara 2.6.2 有所帮助。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-15
  • 1970-01-01
  • 2021-06-16
  • 2019-05-12
  • 2020-05-23
  • 2013-06-26
  • 1970-01-01
相关资源
最近更新 更多