2011-07-11 16 views
5

zacząłem używając SpecFlow i zastanawiasz to Wold być możliwe do ponownego wykorzystania scenariuszy między specyfikacjąPonowne użycie SpecFlow Scenariusze

Zasadniczo jest to mój pomysł (mogę być fundamentalnie złego :))

mam jedna cecha napisane do sprawdzania poprawności nawigacji.

Cecha: Nawigacja

I should be able to navigate to all the pages i'm authorized to 

Scenariusz: Przejdź do Boo

Given I enter proper values in Foo 
When I enter Go 
Then I should be taken to Boo** 

A potem mam inną specyfikację, która walidacji po stronie operacyjnej Boo

Funkcja: Sprawdź, czy Boo działa ok.

W tym miejscu muszę najpierw przejść do ekranu Boo. Myślałam, czy mogę ponownie użyć scenariusz: Przejdź do Boo scenariusz napisany w Nawigacji

to jest możliwe? Inaczej, jaki jest najlepszy sposób obejścia tego?

/BB

Odpowiedz

5

Masz dwie możliwości:

  1. utworzyć klasę, która ma wspólny kroki, wspólny dla wielu scenariuszy. W twoim przypadku ta klasa zawierałaby krok "Kiedy nawiguję do Boo". To byłoby wtedy dostępne dla innych funkcji.

  2. Możesz mieć więcej niż jeden krok z dokładnie taką samą nazwą/tekstem, ale możesz użyć numeru ScopedStepBinding, aby upewnić się, że dla tej funkcji została wywołana właściwa wersja tego kroku. Więc możesz mieć "Gdy nawiguję do Boo" pojawiające się w więcej niż jednym pliku operacji, ale używając zakresu kroku, możesz kontrolować, który kod jest uruchamiany dla pliku operacji.

+0

Dzięki Jason. prawie tyle, czego szukałem! – Illuminati

+0

Nice one :) Cieszę się, że mogłem pomóc. –

+3

"Utwórz klasę, która ma wspólne kroki" -> Jest to nie tylko opcja, jest obowiązkowa. W SpecFlow wszystkie kroki są udostępniane. Klasy kroków są tylko krokami kontenerów, ale nie są one enkapsulowane. Dlatego lepiej jest organizować kroki w klasach za pomocą wspólnego aspektu (ProductSteps, CustomerSteps, PaymentSteps, itd.) Zamiast funkcji (CheckoutFeatureSteps), ponieważ i tak kroki będą dostępne dla innych funkcji. Nie zmienia to ważności twojej odpowiedzi, ale zauważyłem, że znajomość tego szczegółu bardzo pomaga podczas używania SpecFlow. –

Powiązane problemy