我是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”,另一条用于用户说“取消”的路径。
我想说“如果我点击确定”,接着是“那么记录应该被删除”等等。但似乎它应该被打破更好的方式。
你会如何改写这种情况?
答案 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