2013-07-31 75 views
0

预先感谢您的帮助。Specflow功能文件最佳实践

我的问题涉及SpecFlow功能文件中的最佳实践?

问:

是利用认为是不好的实践特征的文件里等待命令。

实施例:

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 

我不使用流利的自动化等待的理由是:

通过利用自动化流利的方法你是依赖于设置对象的默认超时。在某些情况下,默认的超时时间可能不够长或可能会很长。看起来对我来说非常冗长,不断地更改/重置Settings对象,唯一的好处是从功能文件中删除等待命令。

那么最好的做法是什么?

感谢,

-n

+0

FluentAutomation的下一个版本为Settings WaitUntil超时值添加了每个方法的覆盖。 – stirno

回答

3

我认为最好的做法是保持功能文件为您的场景,以及免费的实施细则。

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

所以,我只是不明白你说你需要等待

....

虽然你可能想说

When the page has loaded 

和映射相当不错到流利的自动化。