我正在使用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]
像在overriden方法中调用基本方法的方法?
当然我可以称之为“基地” [BeforeScenario]
明确的方法 - 但这似乎有点像大锤的方法.....
有任何想法吗?思考?指针吗?