2016-10-13 3 views
1

Ich habe eine Funktion mit einer Reihe von Szenarien, die getestet werden müssen, wo der Benutzer als eine Anzahl von möglichen Rollen angemeldet ist (und das Ergebnis sollte das gleiche sein).BDD Gherkin Scripts: Gleiche Gruppe von Szenarien gegen mehrere Rollen

Ist es möglich, eine Beispieltabelle in den Hintergrund zu stellen? Zum Beispiel:

Feature: My general set of tests 

Background: 
Given I am logged in 
And I am logged in as <role> 

Examples: 
| role | 
| Sales | 
| Support | 
| Admin | 
| Auditor | 

Scenario: tests1 blah... 

Scenario Outline: tests 2 blah... 

Also, was ich tun möchte, ist durch die durchlaufen, die Datei mit einem anderen Hintergrund Kontext verfügen, anstatt eine separate Feature-Datei für jede Rolle zu halten. Ist das möglich?

Antwort

0

Nein, das ist nicht möglich. Am ehesten wäre eine Schrittdefinition "Ich bin in einer der üblichen Rollen (Sales, Support, Admin, Auditor) angemeldet", wobei die tatsächliche Rolle jedes Mal zufällig ausgewählt wird. Dies würde natürlich Ihre Tests unbestimmt machen, was akzeptabel sein könnte, wenn Sie 100% positiv sind, dass diese Rolle wirklich absolut keinen Einfluss auf das Ergebnis hat. In diesem Fall sollten Sie die Rolle in Ihren Szenarien nicht erwähnen.

0

Denken Sie daran, dass BDD nicht wirklich zum Testen dient. Wir verwenden Beispiele zu veranschaulichen das Verhalten, das wir wollen. Sie benötigen nur ein Szenario, das ein Beispiel für das Verhalten bietet.

Wenn eine der Rollen ein anderes Verhalten bietet, dann haben Sie auch ein Beispiel für dieses Verhalten.

Ein besserer Ort, um zu testen, ob die Ergebnisse für alle Rollen gleich sind, könnte sich auf einer Unit-Test-Ebene befinden, in welcher Klasse die Rollen die verschiedenen Ergebnisse verknüpfen. Und natürlich können Sie es manuell testen. Die Chancen sind sehr gut, dass wenn Sie es richtig machen und es manuell funktioniert, es nicht brechen wird, ohne das eine Beispiel zu brechen, das Sie haben. Es ist genug.

Wenn Sie versuchen, jede Permutation jeder Rolle so zu behandeln, werden Sie mit einer sehr langsamen Erstellung und viel zu vielen Szenarien konfrontiert, von denen keine mehr interessant sind. Denken Sie an Beispiele dafür, was Sie zu illustrieren versuchen, anstatt an Tests, und Sie werden es leichter haben.

+0

Zu diesem Punkt denke ich, dass Sie richtig sind. Ich denke, die Lösung besteht darin, eine einzige typische Rolle zu verwenden und die Szenarien darauf auszuführen, und ein einziges Szenario, das alle Rollenoptionen durchläuft, sicherzustellen, dass sie an einer bestimmten einzelnen Funktion in dieser Funktion arbeiten. –

Verwandte Themen