我正在使用 Cucumber/Capybara 组合测试 Rails 3 应用程序。我还尝试使用 Selenium 来测试一些 JavaScript 特定场景,但遇到了我不明白的奇怪困难。
我对 Cucumber/Capybara 的经验非常少,我对 Selenium 的经验为零。
这是场景:
Scenario: Browsing events
Given many events exist
And I am on the events page
Then I should see a list of 15 events
When I follow the first event
Then I should be on the event page
And I should see a google map
And I should see the event details
当该场景在 RackTest 下运行时,它会一直传递到 Google Map 步骤,此时它会失败,因为没有 JavaScript。这是预料之中的。
当我使用默认 JavaScript 驱动程序 (Selenium) 运行测试时,它在第三步失败(我应该看到包含 15 个事件的列表)。当我观察浏览器窗口时,事件列表实际上根本不包含任何事件 - 几乎就好像它们不存在于数据库中一样。
顺便说一句,第一步(存在许多事件),使用 FactoryGirl 创建事件负载。
由于这对我来说都是新鲜事,我想知道我是否遇到了典型的陷阱?除了标准安装之外,我没有进行任何配置更改rails g cucumber:install
。另外,如果相关的话,我正在使用 OSX。
Thanks
我假设您正在尝试将事务装置(默认行为)与 Selenium 一起使用,但这不起作用。当浏览器单独调用 Rails 应用程序时,测试中管理的事务超出范围,因此它看不到测试创建的任何未提交的数据。
您需要使用数据库清理工具之一,而不是事务固定装置。
https://github.com/bmabey/database_cleaner
Edit:
我随后意识到is可以将事务性装置与 Selenium 测试一起使用,如果这样做,性能会更好(归功于 Kira Corina 的回答)。看http://pastie.org/1745020了解详情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)