torsdag den 5. januar 2012

Abstrakte scenarier i Cucumber

Nogen gange har man behov for at teste mange features som ligner hinanden meget. Dette anvendes f.eks ret tit ifm. data drevet test. Cucumbers måde at tackle dette er ved at lave et abstrakt scenario og så efterfølgende give eksempler på testdata.

Der er ikke noget i vejen for at disse eksempler udgør et komplet datasæt sådan at der egentligt er tale om datadrevet test, men der er på den anden side heller ingen regler om at det skal være sådan.
Hvis vi går tilbage til onsdag d. 4 januar så beskrev jeg hvordan man kunne optimere de af sine scenarier der ligner hinanden meget vha. et baggrunds scenarier. I dette post vil jeg bygge videre på den ide og optimere yderligere ved at lave den om til en data drevet test i stedet.

Opbygningen er meget lig den vi kender, vi starter med en egenskab og derefter definere vi et scenario, i dette tilfælde et abstrakt scenario. I en normal feature fil ville vi bare fylde på med scenarier indtil vi havde demonstreret alle de ting vi skulle, men når man bruger et abstrakt scenario, anvender man data eksempler til at beskrive data.
Her er slut egenskaben fra onsdag d. 4/1:

# Language: da
Egenskab: Velkomst på flere sprog
    For at kunne tilgodese forskellige sprog og kulturer
    Som bruger af applikationen
    Skal jeg få vist en velkomsmeddelelse på mit modersmål.

Baggrund:
    Givet jeg har en ny Firefox browser
    Givet jeg navigere til applikationens forside
    Givet jeg logger ind som “testbruger_1” med password “hemmeligt”

Scenarie: Dansk
    Når jeg vælger sproget “Dansk” i sprogvælgeren
    Så skal velkomst beskeden være “Velkommen”

Scenarie: Svensk
    Når jeg vælger sproget “Svenska” i sprogvælgeren
    Så skal velkomst beskeden være “Välkomna”
        
Den kan vi optimere med et abstrakt scenario på følgende vis:

# Language: da
Egenskab: Velkomst på flere sprog
    For at kunne tilgodese forskellige sprog og kulturer
    Som bruger af applikationen
    Skal jeg få vist en velkomsmeddelelse på mit modersmål.

Abstrakt Scenario: Alle sprog
    Givet jeg har en ny Firefox browser
    Givet jeg navigere til applikationens forside
    Givet jeg logger ind som “testbruger_1” med password “hemmeligt”
    Når jeg vælger sproget “<sprog>” i sprogvælgeren
    Så skal velkomst beskeden være “<besked>”
        
Eksempler:
    | sprog    | besked     |
    | Dansk    | Velkommen  |
    | Svenska  | Välkomna   |
    | Norske   | Velkommen  |
    | Soumi    | Tervetuloa |
    | Íslenska | Velkomin   |

Hvis dette var den udtømmende liste af sprog som kunne anvendes i den angivne web applikation, så ville dette udgøre en fyldestgørende test for denne egenskab. Dejlig konkret og nemt at læse.
Kan du se andre steder hvor dette med fordel kunne anvendes? - kom gerne med en kommentar.

Ingen kommentarer:

Send en kommentar