ruby-on-rails - 如何跳过 cucumber 场景中的登录以加快测试速度?

标签 ruby-on-rails cucumber capybara selenium-webdriver

我有一个 rails-app,我正在尝试使我的 cucumber / capybara / Selenium 网络驱动程序测试更快。我的大多数场景看起来像:

@javascript
Feature: Writing reports
  In order .....

  Background:
  Given I am logged in

  Scenario: Scenario 1
    ...........
  Scenario: Scenario 2
    ...........

大部分时间都花在“Given I am login”上,在那里我会转到注册页面创建用户并登录。身份验证是使用 Devise 实现的。

我怎样才能让我完全不必在测试环境中进行登录?

是否有其他最佳实践可以解决繁琐的登录步骤? (并且只保留那些专门测试登录/注册的场景的登录)

最佳答案

您的 cucumber 场景就是您生活和呼吸的文档。 如果您需要登录才能使用应用程序的该部分,那么您的 cucumber 步骤应该明确说明。

至于你在 capybara 的引擎盖下叫什么。您可以查看设计 session Controller 并直接在集成测试中使用相同的方法调用。然而,如果 Devise 改变它的实现,你的集成测试将会中断。 在可能的情况下,您的集成测试不应关注任何底层实现细节。

最容易维护的代码,也是最可靠的测试,就是按照用户的意愿填写表单。

关于ruby-on-rails - 如何跳过 cucumber 场景中的登录以加快测试速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13057324/

相关文章:

automated-tests - 如何使用 Cucumber 测试确认对话框?

ruby-on-rails - 在使用 Selenium 运行 Cucumber 之前,我是否需要运行 Webrick?

application.js 中 _form 部分字段的 Javascript 无法用于编辑操作

javascript - 如何在 Rails 中的输入标签内存储 erb 值?

testing - 如何在 Karate DSL 中操作 xml 文件的变量?

java - cucumber-jvm 的全局 BeforeAll Hook ?

javascript - Capybara 等待页面用 Ruby 完全加载所有元素

ruby-on-rails - Rails - 更新时类型错误 : nil is not a symbol nor a string,

ruby-on-rails - 如何清除 Ruby 中的内存缓存?

ruby - capybara 与 cucumber |获取 cookie