2015-05-14 29 views
5

Czy jest gdziekolwiek, gdzie możemy użyć if/else concept in file feature? Na przykład:czy jeszcze inna koncepcja jest dostępna w pliku operacji (języku korniszona)?

Scenario: User should be able to check login page 
    Given I am on login page 
    When I click on SignIn button 
    Then I should be in home page 
    If yes 
    Then I will create a new profile 
    Else 
    Then I will logout from page 
+1

Nie, w Twojej przykład jesteś opisują dwa scenariusze w jednym. Powinny być rozdzielone. – jmccure

Odpowiedz

7

Nie jestem tego świadomy. Ogórki (i ogórki) najlepiej stosować, gdy określają dyskretne przypadki biznesowe i powinny być powtarzalne, w przeciwnym razie trudno będzie je wykonać i przetestować. Wygląda na to, że masz przynajmniej dwie historie:

Scenario: A new user should be asked to sign in 
    Given I am a new user 
    And I navigate to the login page 
    When I click on SignIn button 
    I should not be able to get to the home page 

Scenario: An existing user should be able to log in 
    Given I am an existing user 
    And I navigate to the login page 
    And I submit valid credentials 
    When I click on SignIn button 
    I should be taken to the home page 
4

Nie możesz i nie powinieneś. Pliki funkcji dotyczą zachowania biznesowego, a nie programowania.

Ze scenariusza myślę, że próbujesz radzić sobie z różnymi zachowaniami, w zależności od tego, czy jesteś zarejestrowany, czy nie. Aby to zrobić, należy napisać dwa scenariusze:

Zobacz, jak te scenariusze nie opisują "jak" cokolwiek zostało zrobione. Coś w stylu "klikam na foo" jest zapachem i powinno się go unikać.

-1

Można użyć parametru w pliku opcji i zaimplementować parametr If else w kodzie na podstawie parametru przekazanego.

0

Co się stanie, jeśli użyjemy korniszona w sytuacji typu testu dymu i musimy upewnić się, że coś istnieje w bazie danych przy użyciu tylko interfejsu użytkownika?

Scenario: I need to create one (and only one) Box before I run the rest of my smoke tests 
Given I login as Admin 
When I am on the Box list Page 
Then the test passes if the Box named "QA SmokeTest" exists 
When I click the Add New Box Button 
And enter the details for a New Box 
And press Save New Box 
Then the test passes if the Box named "QA SmokeTest" exists 

Ponowne użycie tego samego Then kroku dwukrotnie jest zasadniczo if-else, że zadba o moje Box istnieje więc, że mogę uruchomić inne moje testy z zestawu testów dymu, które wymagają skrzynki.

Ale to zależy od bycia w stanie powstrzymać wykonanie scenariusz runner testu lub robić coś obcego, takich jak:
ScenarioContext.Current["TestPassed"] = true;
a następnie w każdym z etapów
if(ScenarioContext.Current.Get<bool>("TestPassed")) return;