我有以下内容:
As an approver #... ?
Scenario : approve a profile
When : I approve a profile
Then : the profile owner should be notified about his profile's approval
# (on his android device)
And : I should see the profile as a valid profile
And : guests should be able to see the profile
或者我可以说:
As an owner
Scenario : approve a profile
When : my profile is approved
Then : I should be notified about my profile's approval
...?
由于my profile is approved
是一个事件,因此在此以及其他有界上下文中会产生多重后果。
一些后果是立即的,有些可能最终变得一致。 将单个事件放在多个功能中会导致管理团队,估计时间等方面的困难。
有什么建议吗? 提前谢谢。
答案 0 :(得分:2)
是的,在一个场景中让多个用户拥有不同角色是完全合适的。小黄瓜场景是用例的场景;用例有多个参与者是正常的。
我写的方案是这样的:
Scenario: User approves a profile
Given there is a user "owner"
And there is a user "approver"
And there is a user "guest"
And "owner" has a profile
When "approver" approves the profile
Then "owner" should be notified that their profile was approved
And "approver" should see the profile as a valid profile
And "guest" should see the profile as a valid profile
您可能需要更多或不同的步骤来为不同的用户提供不同的权限,但这应该会让您有所了解。
在这种情况下,批准者是最重要的角色,但是您在介绍性(“As”)部分中放置的内容取决于要素文件的范围(除此之外它包含哪些方案)。如果它涵盖了配置文件的所有用途,它将只是“作为用户”;如果它涵盖所有配置文件管理,它将是“作为配置文件管理员”;如果它仅涵盖个人资料批准,那么它将是“作为个人资料审批者”。
答案 1 :(得分:0)
使用场景Ouline并根据执行某些操作时保存的一些变量,您可以添加if或switch来进行验证。
答案 2 :(得分:0)
按依赖边界分组逻辑流1,然后按用户角色分组。
尝试解决哪一个可以由一个开发人员完成,哪个可以分成更小的部分(因此需要更短的准备时间)。
在CQRS
系统中,例如,当您使用最终一致性(应由需求定义)时,您可以轻松地将write
要求gherkin
与{{1}分开要求' s read
。但是,如果您的方案需要立即一致,那么最好不要将阅读方的gherkin
与写入方gherkin
分开,并让一个开发人员(或一对)研究它。
我认为用户角色不太重要,但如果您的角色来自不同的BC,那么您最好为每个BC编写不同的gherkin
。故事应该是独立的,gherkins
是task prioritization
,但我会根据技术问题优先考虑其中一些。