我是铁杆,黄瓜和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"
我应该开始使用他们实际用作应用点的功能吗?
答案 0 :(得分:1)
您实施功能的顺序是业务决策。无论是从登录过程还是其他功能开始,都取决于每个功能所具有的业务价值。
为了帮助您找到从哪里开始,您需要向利益相关者提问。以下是一些例子:
在身份验证之前构建功能A 可以是一个很好的策略,因为您将能够公开该功能以测试用户并提前对其进行改进。或者,它对您的特定项目完全没有意义,并且您希望在其他任何事情之前准备好身份验证。
现在,为了评论您的特定场景,您使用的样式非常好。
我有感觉(我可能是wron)用户加载应用程序功能虽然不是很有用。作为用户,您是否关心“欢迎使用应用”消息?这个场景看起来像是一个功能前的设置测试,您希望作为开发人员开始开发过程。但是,对于应用程序的行为,它似乎并没有(我可能错了)。
这可以封装在Cucumber功能背后,描述系统的一些真实预期行为(例如登录过程或将项目添加到购物车或阅读博客帖子,以及与您的域相关的任何内容)。