编写包含用户决策提示的SpecFlow场景

时间:2011-04-21 15:37:07

标签: bdd specflow

我是SpecFlow和BDD的新手,我在写一个需要用户做出选择的场景时遇到了障碍。基本上是这样的场景:

Scenario:  Deleting a record
Given I am on the edit record page
And I click the delete button
Then I should see a prompt asking for confirmation

我不确定如何超越这一点。这里有两条路径可以测试,一条用于用户对确认信号“OK”,另一条用于用户说“取消”的路径。

我想说“如果我点击确定”,接着是“那么记录应该被删除”等等。但似乎它应该被打破更好的方式。

你会如何改写这种情况?

2 个答案:

答案 0 :(得分:3)

我建议您在更高级别编写场景。避免在场景中使用按钮,单击和文本框,并尝试讨论用户想要完成的内容 - 系统的行为。然后,在步骤定义中隐藏与页面的实际交互。

所以在你的情况下会是这样的;

鉴于我在记录页面

删除记录时

然后我应该看到确认消息

在[When(“我删除记录”)的步骤定义中,然后执行单击删除按钮和“确定”的确定按钮或删除记录所需的任何内容。

我希望这很清楚。在我的手机上写下来;)

答案 1 :(得分:2)

这里可能实际上有三种情况。第一个重点是马库斯建议:

Given I am on the record page
When I delete a record
Then I should see a confirmation message

但是还有确认对话框行为的场景吗?

Given I am presented with a confirmation message
When I confirm the action
Then the action proceeds

Given I am presented with a confirmation message
When I cancel the action
Then the action does not proceed