2012-10-30 16 views
20

Ho una funzionalità (un file .feature) che funziona perfettamente nel cetriolo.Come testare la stessa funzionalità con più sfondi nel cetriolo

Lo sfondo di tutti gli scenari nella funzione imposta semplicemente un utente e quindi accede come supervisore, ad es.

Background: 
    Given I am logged in as a supervisor with an existing supervisee 

    ...loads of scenarios 

Tuttavia, il disegno/obiettivi dell'applicazione è cambiato e gli stessi scenari dovrebbero funzionare se si è connessi come un supervisore o come l'utente. Questo non è vero per la maggior parte del resto dell'applicazione in cui il design non è simmetrico per supervisori/utenti.

Esiste un modo corretto per evitare di copiare e incollare l'intero file con uno sfondo diverso? Non sembra che ci sia un modo per parametrizzare lo sfondo (ad es. Con O: O: stanza) o in alternativa un modo per inserire un file esterno con un carico di scenari. Idee?

Background: 
    Given I am logged in as an existing supervisee 

    ...same loads of scenarios 

Ecco qualche fantasia sintassi cetriolino (che non esiste)

Background Outline: 
    Given I am logged in as a <user> 

    Backgrounds: 
    | user         | 
    | supervisor with an existing supervisee | 
    | an existing supervisee     | 

    ...loads of scenarios 

alternativa diversa fantasia sintassi Gherkin:

Background: 
    Given I am logged in as an existing supervisee 

    Include Scenarios: 
    supervisor.features 
+0

Non sono chiaro su quale cambiamento si desidera apportare. Puoi mostrare lo sfondo, spiegare quale comportamento mostra attualmente e descrivere come vuoi che si comporti? –

+0

@MarkThomas Ho aggiunto uno sfondo esistente e la versione copia e incolla, e un paio di "sintassi del cetriolino fantasy" per indicare cosa sto mirando a –

+0

@TimDiggins. So che questa è una vecchia domanda, ma sono curioso se hai trovato o no un modo per descrivere "Contorni di sfondo" usando Gherkin? ... forse qualcuno ha avuto un'estensione? – muhqu

risposta

4

Se me è stato, vorrei solo succhiare il duplicazione:

http://dannorth.net/2008/06/30/let-your-examples-flow/

Un'alternativa sarebbe utilizzare un tag sulla funzionalità che indica che si desidera eseguire gli scenari in base a entrambi i gruppi di utenti. Quindi utilizzare un aggancio intorno per eseguire lo scenario due volte, una volta per ogni tipo di utente.

Abbiamo già parlato di "Contorni di sfondo", ma la conclusione a cui siamo giunti è stata che non sarebbe valsa la pena aggiungere la complessità per implementarlo.

+0

Non voglio la duplicazione, non perché io sia un fanatico ASCIUTO, ma perché è davvero solo una caratteristica e più espressiva per tenerlo in un posto. Ma il tagging e l'uso di un aggancio sono molto espressivi. Perfetto grazie! –

+0

Funziona davvero? Sembra che non sia possibile eseguire un blocco più di una volta. Vedi [questo] (http://stackoverflow.com/a/10876638/158074) risposta. – rsenna

+0

@rsenna (mi scuso per la risposta tardiva) - In realtà non ci ho provato, ma ho lasciato la duplicazione. Mi piaceva l'idea di aggirare i ganci, ma era troppo lavoro (e sembra che non avrebbe funzionato fine). –

Problemi correlati