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