- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 SpecFlow 很感兴趣,我真的很喜欢它。
除了一些棘手的问题...例如功能和场景设置代码。
在一个名为 InfrastructureSteps.cs
的“通用”文件中,我有应该为每个场景运行的通用设置代码 - 所以我的方法看起来像这样:
[BeforeScenario]
public void SetupDbContext()
{
// define some basic stuff, set up a database transaction context etc.
}
这需要在每个场景之前运行,到目前为止,它运行良好。
但是现在,我在特定于测试的步骤文件中有两个场景,它们在运行之前也需要相当广泛的设置。所以我在 .feature
中用标签标记了他们的场景:
@needs_extra_setup
Scenario: .....
Given .....
When .....
Then ......
并实现了特定于测试的 BeforeScenario
设置方法:
[BeforeScenario("needs_extra_setup")]
public void DoExtraSetupForMyScenario()
{
// do stuff
}
它有效 - 它被调用 - 但它在 通用 [BeforeScenario]
方法被调用之前被调用 :-( 因此它失败了 - 东西正在设置因为通用设置方法不存在并导致我的代码失败。
那么在 SpecFlow 中有什么方法可以对 [BeforeScenario]
方法进行排序吗?或者我可以告诉特定的 [BeforeScenario]
方法首先执行“基本”[BeforeScenario]
方法,就像在覆盖方法中调用基本方法一样?
当然,我可以显式地调用“基础”[BeforeScenario]
方法 - 但这看起来有点像大锤方法......
有什么想法吗?想法?指针?
最佳答案
我很确定您可以(并且可能不应该)对场景的执行顺序进行排序。
但您可以使用其他一些 hooks例如 BeforeFeature,也许可以那样绕过它。
另一种方法是简单地使用一个标志来检查是否已在特定内容中设置一般内容,调用 SetupDbContext 方法(或者最好是 SetupDbContext 依次调用的方法)。
使用 ScenarioContext.Current字典来存储你的标志。
希望对你有帮助
关于testing - SpecFlow - 多个 BeforeScenario 方法的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11665042/
我想选择在 @BeforeScenario 中启动应用程序(appPackage,appActivity) 来为一个测试项目中的多个应用程序开发测试场景。我知道使用启动 Activity ,但由于安全
我才开始使用 specflow,我知道它的绑定(bind)对于程序集是全局的。无论如何,我找不到解决问题的方法或解决方法: 我使用抽象类进行 UI 测试,例如 public abstract clas
我们正在尝试在我们的规范流测试中实现全局 Hook ,但不完全确定 [BeforeScenario]和 [AfterScenario]归因方法起作用。 就我所见,这些属性总是在一个类中定义,其中包含在
我正在一个功能文件中编写多个场景。我正在使用一个大的步骤文件将场景步骤绑定(bind)到代码。 例如,我的功能文件如下所示: Feature: Feature1 Description of
我对 SpecFlow 很感兴趣,我真的很喜欢它。 除了一些棘手的问题...例如功能和场景设置代码。 在一个名为 InfrastructureSteps.cs 的“通用”文件中,我有应该为每个场景运行
我是 JBheave 和 Hive 框架的新手。 在探索问答存储库时,我碰巧从正确的问题答案之一中看到了以下短语,- writing a JBehave story That's what I've
我最近开始了一个使用 SpecFlow 的现有项目。 我在 BaseSteps.cs 中添加了一个带有 [BeforeScenario] 的方法来执行一些日志记录。 BaseSteps.cs 的类没有
查看 jBehave 的代码,我注意到所有 @BeforeStory/Scenarios 注释都针对 JBehave 权限中存在的所有故事/场景运行。 Stories/Scenarios 和 @Bef
框架使用:selenium-cucumber-js。 我正在尝试运行下面的 selenium-cucumber-js 测试。我想将 loginApp() 函数作为 hooks.js 文件中编写的 Be
我是一名优秀的程序员,十分优秀!