0

在此先感谢您的帮助。

我的问题与 SpecFlow 功能文件中的最佳实践有关吗?

问题:

在功能文件中使用等待命令被认为是不好的做法。

例子:

And i click on the username
And wait 5 seconds
And i input new value into last name

wait 命令强制等待 5 秒。我这样做是为了确保加载页面以防止“找不到元素”错误或其他错误。基本上是为了确保我有一个干净的页面可以操作。

更好的做法是在 Step 文件本身中使用 wait 吗?

//using Fluent Automation
I.WaitUntil(() => ());
//or
I.Wait(); //timespan

我不使用 Fluent Automation 等待的原因是:

通过使用 Fluent Automation 方法,您依赖于 Settings 对象中的默认超时。在某些情况下,默认超时可能不够长或可能太长。对我来说,不断更改/重置设置对象似乎非常冗长,唯一的好处是从功能文件中删除等待命令。

那么真正的最佳实践是什么?

谢谢,

-n

4

1 回答 1

3

我认为最好的做法是为您的场景保留功能文件,并且不包含实现细节。

由于我们遵循 BDD 流程 ( http://dannorth.net/introducing-bdd ),因此功能文件是您与流程专家之间对话的输出,场景代表您将要采取的步骤证明您的功能适用于该示例。您可能希望这些步骤定义了业务流程,并且可以由任何系统执行,而不仅仅是我们现在可能正在开发的系统。理想情况下,这种逻辑可以捕捉我们的意图,并且可以在任何未来可能取代当前系统的系统上重复使用。

所以我只是没有看到你说你需要等待

……

虽然你可能想说

When the page has loaded

这很好地映射到流利的自动化。

于 2013-07-31T16:57:13.933 回答