Specflow功能文件最佳实践

时间:2013-07-31 16:03:20

标签: specflow acceptance-testing acceptance

提前感谢您的帮助。

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

问题:

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

示例:

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

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

更好的做法是在Step文件中使用等待吗?

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

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

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

那真正的最佳做法是什么?

谢谢,

-n

1 个答案:

答案 0 :(得分:3)

我认为最佳做法是保留场景的功能文件,并且不受实现细节的影响。

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

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

...

虽然您可能想说

When the page has loaded

并且可以很好地映射到流畅的自动化。