0

我是 Rails、黄瓜和 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"

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

4

1 回答 1

1

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

为了帮助您找出从哪里开始,您需要向利益相关者提问。这里有一些例子:

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

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

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

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

这可以封装在 Cucumber 特性后面,描述系统的一些实际预期行为(如登录过程或将项目添加到购物车或阅读博客文章,无论与您的域相关)。

于 2013-02-15T12:32:58.790 回答