当我尝试为我的网络应用程序运行黄瓜方案时,是否有任何文档或其他内容可以让我知道发生了什么。
我使用Capybara,webkit,无头宝石作为我的技术堆栈。
答案 0 :(得分:1)
我建议您查看Capybara和Cucumber的代码(理想情况下是您正在使用的宝石版本)。我发现从Capybara启动服务器的位置向后工作更容易,而不是从调用Cucumber时向前工作。
Capybara::Server
是负责启动服务器的类。
Capybara::Session
creates an instance of Capybara::Server
将驱动程序设置为:Capybara#current_session
creates a new instance of Capybara::Session
时将使用webkit。
page
, a method in Capybara's DSL, just returns current_session
所有DSL方法,例如visit
get sent to the current_session
through page
。在DSL文件的顶部,有一条评论显示"When using capybara/dsl, the Session is initialized automatically for you."
通过使用cucumber-rails或by manually requiring capybara/cucumber,您可以获得capybara DSL methods included in Cucumber's World。
我有一段时间没有使用黄瓜,但我想我记得他们从黄瓜中删除了任何预先填充的步骤定义,所以实际上没有任何我想到的地方可以链接到Cucumber的代码,但这是第一次步骤定义调用Capybara DSL方法,就像服务器启动时一样。