2017-04-03 2 views
0

Ich habe ein Specflow-Szenario, das durch einen Assistenten in unserer Anwendung läuft und ein Formular erstellt, ähnlich wie ein Benutzer. Nennen wir dieses Szenario A.Wird in einem gesamten Specflow-Szenario mit einer Specflow-Zeile ausgeführt?

Jetzt muss ich ein anderes Szenario erstellen, das das erstellte Formular übernimmt und es ausfüllt/abgibt. Nennen wir dieses Szenario B.

Um Szenario B ausführen zu können, muss Szenario A zuerst ausgeführt werden. Gibt es eine Möglichkeit, das gesamte Szenario A mit dem Schlüsselwort Background in Szenario B auszuführen? Oder gibt es einen anderen Weg, dies zu tun?

Antwort

1

können Sie die Schritte rufen andere Schritte bilden, so dass Sie die Art und Weise zu tun, was Sie wollen, ist ein Schritt zu schaffen, die alle Schritte nennt, die im Hintergrund einschließlich:

Backgroud: 
    Given I have done this 

Scenario: 
    Given another thing 
    And this other thing 

dann können Sie eine erstellen Schritt so

[Binding] 
public class MySteps: Steps //<- this is important if you want to reuse steps 
{ 

    Given("I have done eveything")] 
    public void GiveIHaveDoneEverything() 
    { 
     Given("I have done this"); 
     Given("another thing"); 
     Given("this other thing"); 
    } 
} 
+0

Bitte tun Sie dies nicht. Das Aufrufen von Schritten innerhalb von Schritten ist für Gurken-basierte Frameworks eine schlechte Übung. Stelle stattdessen Helferfunktionen her: 'iHaveDoneThis(); etwas anderes(); ThisOtherThing(); ' –

+0

@KyleFairns können Sie erweitern, warum Sie diese schlechte Praxis betrachten? Nicht, dass ich gegen Hilfsfunktionen per se bin, aber ich bin mir nicht sicher, warum es eine schlechte Praxis ist. –

+0

Probleme sind schwer aufzuspüren und es macht die Wartung tatsächlich schwieriger. Verwenden Sie stattdessen Hilfsmethoden. Schauen Sie sich [diese Diskussion] (https://groups.google.com/forum/#!msg/cukes/Zi5IIAr4dJg/S9A0cnNc0G4J) an, es wird Ihnen mehr erklären. In der Praxis werden Sie keine Fehler haben, wenn Sie solche Dinge tun, aber wenn es zu einem Schritt innerhalb eines Schrittes innerhalb eines Schrittes (etc) kommt, müssen Sie in den Kaninchenbau gehen, um zu finden warum genau es gescheitert ist. Durch das Erstellen von Hilfsfunktionen kann Code wartungsfreundlicher werden. –

Verwandte Themen