Я получаю удовольствие от 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]
метод -, но это немного похоже на метод кувалды -молота.....
Любые идеи?Мысли? Указатели?