【问题标题】:order of features & step definitions/specs in ruby apps? (rails)ruby 应用程序中的功能和步骤定义/规范的顺序? (导轨)
【发布时间】:2013-02-13 21:16:53
【问题描述】:

我是 rails、cucumber 和 rspec 的新手。为了帮助学习这三个方面,我已经开始构建一个需要登录的真实应用程序。

如果我能从哪里开始并确认我走在正确的道路上,我将不胜感激。

我从 2 个功能文件开始。然而,我已经在这个阶段停止了,因为我想知道“登录”功能(尽管应用程序的核心方面,因为他们不能在没有登录的情况下做任何事情)应该出现在其他资产和模型之后,例如他们登录时管理的事情。

那么,哪个会先出现?登录功能或他们管理的模型的功能?

示例功能文件:

Feature: User loads application

  As a user
  I want be able to load the application
  So that I can manage my files

  Scenario: Load application
    Given I am not yet using the application
    When I visit the application
    Then I should see "Welcome to app"

登录功能文件:

Feature: User logs in

  As a user
  I want be able to login
  So that I can manage my private files

  Scenario: Successful login
    Given the user "Username" has an account
    When they login
    Then they should see "You have logged in successfully"

我是否应该从他们实际用作应用要点的功能开始?

【问题讨论】:

    标签: ruby-on-rails-3 rspec cucumber bdd


    【解决方案1】:

    您实现功能的顺序是一个业务决策。是从登录过程开始还是从其他功能开始取决于每个功能所带来的业务价值。

    为了帮助您找出从哪里开始,您需要向利益相关者提问。以下是几个例子:

    • 我们可以在没有用户身份验证的情况下构建功能 A 吗?
    • 此时我们绝对需要用户身份验证吗?
    • 假设我们只有一个资源来构建一个单一的功能,那么现在最有价值的是什么:登录或功能 A?

    在身份验证之前构建功能A可能是一个很好的策略,因为您可以将功能公开给测试用户并更早地对其进行改进。或者,这对您的特定项目毫无意义,您希望在其他任何事情之前都准备好身份验证。

    现在,要评论您的特定场景,您使用的样式非常好。

    我感觉(我可能错了)用户加载应用程序 功能并不是真的有用。作为用户,您是否关心“欢迎使用应用程序”的消息?这个场景看起来像一个功能前设置测试,作为开发人员,您希望拥有它来启动开发过程。但似乎(我可能又错了)告诉任何关于应用程序行为的有用信息。

    这可以封装在 Cucumber 功能后面,描述您系统的一些真实预期行为(例如登录过程或将商品添加到购物车或阅读与您的域相关的博客文章)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-26
      • 2013-03-26
      • 1970-01-01
      • 2014-04-27
      • 2020-02-26
      • 1970-01-01
      • 1970-01-01
      • 2011-09-27
      相关资源
      最近更新 更多