2011-01-19 88 views
5

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

比方说,我有一个标准的黄瓜功能测试。我没有使用@selenium等。这是一个普通的香草测试。现在我运行时

bundle exec cucumber 

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

如果您有链接到文章,然后请与我分享。我真的很想知道事情是如何一起工作的。

回答

5

虽然我不知道这是如何工作的最深的细节。但我足够为您提供一些观点。

Cucumber是一个红宝石验收测试框架,它可以让你用纯英文编写验收。现在总体上它位于Webrat或Capybara之上,它提供了它的真实能力,即模拟浏览器或自动浏览器测试。

水豚或Webrat可以很容易地运行验收测试。水豚使得使用各种驱动程序来运行验收测试变得非常简单。司机,如硒,速度或机架测试。在香草案例中,机架测试用于模拟浏览器测试。

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

黄瓜在会话中运行步骤,即查找器/匹配器等,然后进行测试。

+0

感谢您的回复。我的问题是,如果请求和响应在机架测试中被嘲弄,那么cucumber + capybara如何通过包含rails布局和视图的响应数据访问真正的html页面。 – 2011-01-20 03:37:09