我在这里撕扯我的头发。在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并且刚安装了黄瓜导轨(0.3.2),黄瓜(0.9.2),水豚(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.name 是 stdout ,当我和Spork一起运行时它会吐出“对象”,但是当我在没有Spork的情况下运行它时它会打印出“Cucumber :: Rails” ::世界”。