【问题标题】:Cucumber + Spork = undefined method `visit' for #<Object:0x82fcc588> (NoMethodError)?Cucumber + Spork = #<Object:0x82fcc588> (NoMethodError) 的未定义方法“访问”?
【发布时间】:2010-10-05 22:17:54
【问题描述】:

我在这里扯头发。在 Spork 兼容模式 (--drb) 下运行 Cucumber 时,visit() 方法不起作用。

只需尝试功能步骤:

When I go to the home page

调用网络步骤:

When /^(?:|I )go to (.+)$/ do |page_name|
  visit path_to(page_name)
end

在命令行运行“cucumber”会产生如下错误:

% cucumber
Using the default profile...
Disabling profiles...
.F--

(::) failed steps (::)

undefined method `visit' for #<Object:0x82fcc588> (NoMethodError)
./features/step_definitions/web_steps.rb:24:in `/^(?:|I )go to (.+)$/'
features/authenticated/home_page_visit.feature:10:in `When I go to the home page'

Failing Scenarios:
cucumber features/authenticated/home_page_visit.feature:7 # Scenario: Visit the home page

有人知道为什么 visit() 不可用吗?


我的环境:

我使用的是 Rails 2.3.9,并且刚刚安装了 cucumber-rails (0.3.2)、cucumber (0.9.2)、capybara (0.3.9) 和 spork (0.8.4)。有趣的是,如果我不使用 Spork,那么它绝对可以正常工作:

% cucumber
Using the default profile...
...

1 scenario (1 passed)
3 steps (3 passed)
0m0.114s

另一个有趣的数据点:

我做了一些调试并深入到 Cucumber gem 本身(在 cucumber-0.9.2/lib/cucumber/core_ext/instance_exec.rb 中)我放入了一个 puts() 来转储self.class.namestdout 是什么,当我使用 Spork 运行时,它会吐出“Object”,但是当我不使用 Spork 运行它时,它会打印出“Cucumber::Rails” ::世界”。

【问题讨论】:

  • 我最近升级到 cucumber 0.9,开始收到像你这样的错误并切换回 cucumber 0.8.5
  • 嗯。我会尝试降级。谢谢。
  • cucumber-rails issue #68 上的评论给出了 cucumber 的代码修复,但尚未集成到 cucumber 的 master 分支中。寻找黄瓜的未来版本来修复它(0.9.3?)。

标签: ruby-on-rails cucumber bdd capybara spork


【解决方案1】:

我是在 github 上打开 this issue 的人,我可以确认它适用于 cucumber 0.9.3 及更高版本。

【讨论】:

    猜你喜欢
    • 2016-05-25
    • 2017-10-08
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 2015-05-19
    • 1970-01-01
    相关资源
    最近更新 更多