什么是自动验收测试所需的宝石

时间:2014-02-12 12:40:53

标签: ruby-on-rails cucumber capybara bdd

我想通过黄瓜和水豚写验收测试。我有rspec的经验。我想编写集成/功能测试用例。我希望在Web浏览器上看到结果,该浏览器显示运行的测试用例。编写测试用例需要什么 gems

1 个答案:

答案 0 :(得分:1)

如果您已经熟悉RSpec,我建议您使用RSpec和Capybara进行验收测试。 RSpec是测试框架,Capybara是一个库,可以帮助您通过模拟真实用户与您的应用程序交互的方式来测试Web应用程序。

RSpec与Capybara的验收测试称为“功能规范”,并存在于Rails的/spec/features目录中。 Capybara带有内置DSL,用于使用RSpec(feature/scenario)编写描述性验收测试,但您也可以使用传统的RSpec DSL(describe/it)。

Capybara支持多种驱动程序,其默认驱动程序RackTest不支持JavaScript。所以,可能,你会想要使用其中一个替代驱动程序(我更喜欢Poltergeist,但它是无头的,所以如果你想在浏览器中看到结果,你可以使用Selenium驱动程序)。在这种情况下,您需要设置database_cleaner以在测试之间清除数据库。 Capybara's自述文件包含大量有关其配置和RSpec使用情况的信息,配置驱动程序和使用database_cleaner。

您可以从thisthis截屏视频开始。但请记住,当“功能”规格称为“请求”规格时,它们有点过时并使用传统的RSpec DSL(而不是新的Capybara DSL),并使用旧的惯例。目前,按照惯例,“请求”规范是没有水豚的集成测试。因此,您需要在spec/features目录中创建水豚规格,而不是spec/requests。如果你想使用Capybara DSL,这也很容易解决。只需将describe替换为featureit替换为scenariolet替换为given等。这在Capybara的自述文件中有详细记录。

希望这有帮助。