5

我在我的 rails3 应用程序中使用水豚和黄瓜。一切正常。但是我不明白测试是如何工作的。

假设我有一个标准的黄瓜功能测试。我没有使用@selenium 等。这是一个普通的测试。现在当我跑

bundle exec cucumber

该rails服务器是否在端口上启动?如果是,那么端口号是多少?同样在普通香草案例中,水豚使用机架测试。但是 rack-test 不负责运行服务器。所以我很困惑整个事情是如何运作的。黄瓜在扮演什么角色。机架测试在做什么工作,水豚在做什么。

如果您有文章的链接,请与我分享。我真的很想知道事情是如何协同工作的。

4

1 回答 1

5

虽然我真的不知道这是如何工作的最深层次的细节。但我已经做了足够多的事情来为您提供一些观点。

Cucumber 是一个 ruby​​ 验收测试框架,它可以让你用简单的英语编写验收。现在一般来说,它位于 Webrat 或 Capybara 之上,这为其提供了真正的力量,即模拟浏览器或自动浏览器测试。

Capybara 或 Webrat 使运行验收测试变得容易。Capybara 使使用各种驱动程序运行验收测试变得非常简单。驱动程序,即 Selenium、celerity 或机架测试。在普通情况下,机架测试用于模拟浏览器测试。

Rack-Test 本身只负责创建您在其中运行测试的会话,步骤定义等已由 capybara 创建。所以基本上没有服务器运行由机架测试创建的公正会话(准确地说是模拟会话)。Capybara 现在在由驱动程序(机架测试或其他)创建的会话之上提供查找器方法和匹配器等,以帮助您创建自己的步骤定义。

Cucumber 在会话等您的测试中运行这些步骤,即其中的查找器/匹配器等。

于 2011-01-19T23:36:04.543 回答