提前感谢您的帮助。
我的问题与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
答案 0 :(得分:3)
我认为最佳做法是保留场景的功能文件,并且不受实现细节的影响。
由于我们正在关注BDD流程(http://dannorth.net/introducing-bdd),因此功能文件是您与流程专家之间该会话的输出,该流程表示您将采取的步骤来证明您的功能适用于该示例。您可能希望这些步骤定义业务流程,并且可以由任何系统执行,而不仅仅是我们现在可能正在开发的系统。理想情况下,此逻辑可捕获我们的意图,并可在未来可能取代当前系统的任何系统上重复使用。
所以我只是没有看到你说需要等待
...
虽然您可能想说
When the page has loaded
并且可以很好地映射到流畅的自动化。