Mi sto bagnando i piedi con SpecFlow e mi diverto davvero.SpecFlow - Ordinamento di più metodi di BeforeScenario
Tranne alcuni problemi spinosi ... come il codice di configurazione delle funzionalità e degli scenari.
In un unico file "general-purpose" chiamato InfrastructureSteps.cs
, ho codice di setup generale che dovrebbe essere eseguito per tutti gli scenari - quindi il mio metodo simile a questa:
[BeforeScenario]
public void SetupDbContext()
{
// define some basic stuff, set up a database transaction context etc.
}
Questo deve essere eseguito prima ogni scenario e, finora, ha funzionato bene.
Ma ora, ho due scenari in un file di passaggi specifici del test che richiede anche un'impostazione piuttosto estesa prima che possano essere eseguiti. Così ho segnato il loro scenario nel .feature
con un tag:
@needs_extra_setup
Scenario: .....
Given .....
When .....
Then ......
e implementato un metodo BeforeScenario
configurazione specifica-test:
[BeforeScenario("needs_extra_setup")]
public void DoExtraSetupForMyScenario()
{
// do stuff
}
Funziona - è viene chiamato - ma viene chiamato prima il metodo [BeforeScenario]
per uso generico viene chiamato :-(e quindi fallisce - roba che viene configurata in quel metodo di installazione generico non è presente e causa il fallimento del codice
Quindi, c'è qualche modo in SpecFlow per ordinare i metodi [BeforeScenario]
? Oppure posso dire ad uno specifico metodo [BeforeScenario]
di eseguire prima un metodo "base" [BeforeScenario]
come chiamare un metodo base in un metodo sovrascritto?
Naturalmente potrei chiamare che "base" [BeforeScenario]
metodo esplicitamente - ma che sembra un po 'come un approccio maglio .....
Tutte le idee? Pensieri? Puntatori?
È inoltre possibile utilizzare FeatureContext.Current per l'uso con BeforeFeature – Heliac