【问题标题】:Specflow Feature File Best Practicespecflow功能文件最佳实践
【发布时间】:2013-08-01 06:31:48
【问题描述】:

提前感谢您的帮助。

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

问题:

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

例子:

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

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

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

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

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

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

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

谢谢,

-n

【问题讨论】:

  • FluentAutomation 的下一个版本添加了设置 WaitUntil 超时值的每个方法覆盖。

标签: specflow acceptance-testing acceptance


【解决方案1】:

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

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

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

....

虽然你可能想说

When the page has loaded

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

【讨论】:

    猜你喜欢
    • 2012-09-10
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 2015-07-23
    • 2010-10-07
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多