当我尝试为我的网络应用程序运行黄瓜场景时,是否有任何文档或东西可以让我找出确切发生的情况。
- 它何时以及如何启动服务器?
我正在使用 Capybara 、 webkit 、 headless gem 作为我的技术堆栈。
我建议跟踪 Capybara 和 Cucumber 的代码(理想情况下适用于您正在使用的 gem 版本)。我发现从 Capybara 启动服务器的位置向后工作比从 Cucumber 被调用时向前工作更容易。
Capybara::Server
是负责启动服务器的类。
Capybara::Session
创建一个Capybara::Server
.
将驱动程序设置为 :webkit 会在Capybara#current_session
创建Capybara::Session
.
page
,Capybara 的 DSL 中的一个方法,只是返回current_session
.
所有的 DSL 方法,比如visit
get 发送到current_session
throughpage
。在 DSL 文件的顶部,有一条注释说“使用 capybara/dsl 时,会话会自动为您初始化”。
通过使用 cucumber-rails 或手动要求 capybara/cucumber,您可以获得Cucumber's World 中包含的 capybara DSL 方法。
我有一段时间没有使用黄瓜了,但我想我记得他们从黄瓜中删除了任何预先填充的步骤定义,所以实际上我没有想到在黄瓜的代码中链接到任何地方,但第一次是步骤定义服务器启动时调用 Capybara DSL 方法的样子。