2012-04-03 3 views
8

Mi chiedevo se c'è un buon argomento a favore o contro l'utilizzo di sfondi in cetriolo rispetto all'utilizzo di tag e ganci.Cetriolo: Quando utilizzare tag/ganci vs sfondi

Avendo un utente collegato prima dell'inizio di un test potrebbe andare in entrambi in questo modo:

Background: 
    Given that I am logged in 
Scenario: Lorem ipsum sit amet dolor 
[...] 

o come questo:

@login 
Scenario: Lorem ipsum sit amet dolor 
[...] 

+

before(@login) do 
    visit('/admin/login/testuser') 
end 

Qualsiasi idea di quando favorirne uno rispetto all'altro?

risposta

9

Background è utile quando fornisci uno sfondo comune (non tecnico) leggibile dal cliente per i tuoi scenari. Vale la pena utilizzarlo se si desidera che sia esplicito in merito a questa inizializzazione nel testo della funzione.

Ma a volte teardown (e impostazione) logica è un dettagli di implementazione ed è implementato in Before, After o Around ganci (in quanto lettore del vostro spec non avrà bisogno di sapere di queste cose tecniche).

Sommario: utilizzare Sfondo se si desidera informare il lettore delle proprie specifiche dello sfondo e utilizzare i ganci quando lo sfondo è un dettaglio di implementazione.

Nell'esempio, lo sfondo è la scelta migliore.

4

Definitivamente il primo (IMHO), poiché cattura tutto nel file di funzionalità Gherkin universalmente leggibile. I tag sono davvero lì solo per aiutare il corridore - sono il livello di implementazione. Quello che descrivi qui è parte della descrizione di ciò che sta accadendo.