我们有一个工作流引擎,它提供可用工作流的列表(我的意思是工作流定义,而不是实例),用户可以单击任何工作流旁边的“执行”链接,以执行该工作流的新实例。我想以 BDD 方式执行此“执行工作流”故事(功能?)。
Story: execute a workflow
Scenario: execute a workflow by clicking on execute link in workflow list and nothing goes wrong
Given I am a user with sufficient rights
And I have added a workflow called "wf"
When I click on the execute link next to "wf" in the workflows list
When I view the list of workflow executions
Then the output is:
"""
1 | wf1 | not started
"""
(第 1 列:项目编号,第 2 列:工作流名称,第 3 列:状态)
我觉得这更像是一团糟,而不是一个漂亮的 DBB 场景,我特别关心验收标准。我不清楚我应该如何处理一些粗粒度和用户耦合的东西,比如“执行工作流”。我的意思是当你在做 API 时,一切都很清楚,但是如果你描述的是通过(人类)用户交互启动的一些行为,并且其结果从启动另一个具有复杂输出的用例(如列表项)。知道工作流确实执行的标准是在工作流执行列表中看到一个新项目,这本身就是另一个故事。我在这里感到有点困惑。
我应该与数据库层交谈并检查存储新创建的工作流实例的行 - 还是应该检查指向工作流执行列表中新实例的项目是否存在?如果是第二个,那么究竟如何?我应该在一个场景中检查所有具有正确值的列还是在它自己的场景中检查每一列?