我们正在应用 BDD 并使用 SpecFlow 和 Selenium。Gherkin 中指定了验收标准。
我对 Given 子句有疑问。
一个例子可能是...
- 鉴于我在订单详情页面
- 当我提交订单时
- 然后我看到订单摘要
因此,对于“鉴于我在订单详细信息页面”,我们必须登录并准备好提交订单。但是我们如何达到这一点呢?
如果我们已经有相关的现有 SpecFlow 步骤,我们可以使用这些(通过 Selenium)来达到正确的点 - 像这样......
- 鉴于我是注册用户
- 我在登录页面
- 我使用我注册的用户名和密码登录
- 我创建了一个新订单
- 我搜索 XYZ 产品
- 我将产品添加到订单中
- 然后我选择订单详情页面
- 当我提交订单时
- 然后我看到订单摘要
我们甚至可以将所有这些步骤放在“鉴于我在订单详细信息页面”下的步骤代码中
但是,我们使用 Selenium 来实现 Given 是否正确?或者我们是否应该找到某种方法来设置会话/数据库中的所有相关状态/数据,而无需通过 UI?
我怀疑这里没有对错。我不得不说它对我们来说非常有效,但我们一直在寻求改进我们的方法。所以很想听听任何有实际经验的人的意见。
我希望 Stack Overflow 是正确的论坛(不禁认为它不是 - 如果是这样,请不要把我击倒!)......