Na podstawie Twojego pytania i komentarzy do odpowiedzi Jakuba, wygląda na to, że próbujesz napisać pojedynczy krok, który może obejmować wiele podróży użytkowników w Twojej witrynie. SpecFlow nie jest do tego stworzony i prawdopodobnie jest to wskazówka, że powinieneś spróbować ulepszyć strukturę twoich scenariuszy/funkcji.
Aby odpowiedzieć bezpośrednio na twoje pytanie, nie wierzę, że istnieje sposób na dedukcję wartości boolowskich w oparciu o istnienie pewnych ciągów w definicji kroku.
Jeśli chcesz przetrwać tę trasę, Twój oryginalny przykład jest prawdopodobnie najlepszym rozwiązaniem.
Zaleca się jednak, aby nie stosować podejścia, a zamiast tego przyjrzeć się restrukturyzacji definicji kroków, aby połączyć je w łańcuchy i ponownie wykorzystać w różnych scenariuszach. Naprawdę staram się wymyślić przykładową definicję kroku, która pasowałaby do twojego rozwiązania.
Przykładem podejścia wieloetapowej mógłby wyglądać następująco:
Given I have logged in as an existing user //1
And I have started my 6-step registration process //2
And I have filled in valid address values on step 1 //3
And I have left the fields blank on step 2 //4
... etc
When I save my registration
i Twoich kroków byłoby:
- Przejdź do strony logowania, należy zalogować się jako ważny użytkownik
- Nawiguj do kroku 1
- wypełnij pola z poprawnymi danymi wejściowymi, kliknij "Dalej"
- kliknij "dalej"
Trzeba tylko upewnić się, że każdy krok jest tak niezależny od innych, jak to możliwe, więc można zastąpić jeden krok nieco innym (dla nowego scenariusza) bez wpływu na pozostałe.
Dzięki takiemu podejściu nadal można skończyć ze złożonymi (i potencjalnie dość gadatliwymi) scenariuszami, ale uważam, że jest to lepsze rozwiązanie niż staranie się sprytnie i spakowanie aż do definicji jednego kroku. Prawdopodobnie skończy się to scenariuszami, które są nieczytelne, a kod prawdopodobnie będzie trudny do odczytania/utrzymania.
Co to jest flaga binarna w tym przypadku? Co to znaczy zrobić coś dwa razy, gdy 'twice == false'? –
To wymyślony przykład, więc prawdopodobnie nie najlepszy. Po prostu chcę znaleźć dobry sposób na znalezienie, czy ciąg znaków jest obecny w kroku pliku operacji. –
Dobrze byłoby zobaczyć prawdziwy przykład ... Wydaje mi się, że twój problem może dotyczyć sposobu, w jaki piszesz scenariusz. –