2014-09-03 15 views
5

Mam zarys scenariusza ogórka, w którym tabela przykładów Chciałbym podać pusty ciąg znaków ("") i podziały wierszy (\ n \ n \ n) jako wartość. Chcę edytować pole tekstowe i usuwam ciąg znaków i chcę przekazać pusty łańcuch lub podziały wierszy. Chcę wysłać tę wartość i nacisnąć Enter. Wyglądałoby to tak: .sendKeys (value + "\ n"). W tabeli Przykład po prostu pozostawiając wartość pustą i przekazać \ n \ n \ n nie działa. Wartość w polu tekstowym nie ulega zmianie.
ten sposób zarys Scenariusz wygląda następująco:Zarys scenariusza ogórka: Przekazywanie pustego ciągu znaków "" jako wartość w tabeli przykładów

Scenario Outline: Do not accept erroneous input as group conversation name (only spaces and break lines) 
Given I Sign in using login <Login> and password <Password> 
And I see Contact list with name <Name> 
And I create group chat with <Contact1> and <Contact2> 
When I open conversation with <Contact1>, <Contact2> 
And I open Conversation info 
And I set name <NewName> for conversation 
Then I do not see conversation <NewName> in contact list 
And I see Contact list with name <Contact1>, <Contact2> 

Examples: 
    | Login | Password | Name | Contact1 | Contact2 | NewName  | 
    | aqaUser | aqaPassword | aqaUser | aqaContact1 | aqaContact2 |    | 
    | aqaUser | aqaPassword | aqaUser | aqaContact1 | aqaContact2 | \n\n\n\n  | 

Jak mogę przekazać wartości?
Kiedy właśnie przekazuję wartości jako zakodowane na stałe, działa. Pole tekstowe zostanie zastąpione co najmniej wartościami, ale chciałbym mieć je jako symbol zastępczy.
zakodowana wersja:

Scenario Outline: Do not accept erroneous input as group conversation name (only spaces) 
Given I Sign in using login <Login> and password <Password> 
And I see Contact list with name <Name> 
And I create group chat with <Contact1> and <Contact2> 
When I open conversation with <Contact1>, <Contact2> 
And I open Conversation info 
And I set name  for conversation 
Then I do not see conversation  in contact list 
And I see Contact list with name <Contact1>, <Contact2> 

Examples: 
    | Login | Password | Name | Contact1 | Contact2 | 
    | aqaUser | aqaPassword | aqaUser | aqaContact1 | aqaContact2 | 

Scenario Outline: Do not accept erroneous input as group conversation name (line breaks) 
Given I Sign in using login <Login> and password <Password> 
And I see Contact list with name <Name> 
And I create group chat with <Contact1> and <Contact2> 
When I open conversation with <Contact1>, <Contact2> 
And I open Conversation info 
And I set name \n\n\n\n\n for conversation 
Then I do not see conversation \n\n\n\n\n in contact list 
And I see Contact list with name <Contact1>, <Contact2> 

Examples: 
    | Login | Password | Name | Contact1 | Contact2 | 
    | aqaUser | aqaPassword | aqaUser | aqaContact1 | aqaContact2 | 

Jakieś pomysły? Dzięki

+0

Hi @julesmummdry! Czy w końcu korzystasz z mojego rozwiązania? Jeśli tak, może możesz oznaczyć odpowiedź jako zaakceptowaną, jeśli pomogłaby – troig

Odpowiedz

7

Musisz tylko umieścić <columnName> między "" w definicji cechy. Przykład:

And I set name "<NewName>" for conversation 

W swojej definicji kroku, krok mógł być odnotowany jak w następujący sposób:

@And("^And I set name \"([^\"]*)\" for conversation$") 
    public void And_I_set_name_for_conversation(String newName) throws Throwable { 
     ... 
    } 

Nadzieja pomaga

+1

dzięki, spróbuje ... znaleźć w międzyczasie różne rozwiązanie. Tak więc przekazuję znak Unicode dla SPACE i unikam go (\\ u0020). Mam Stringparser, który usuwa je i ustawia jako nazwę (name = StringParser.unescapeString (name);). To działa dla mnie, ale sprawdzi twoją tippę. dzięki – julesmummdry

+1

Dobre podejście. Ale myślę, że moje rozwiązanie jest prostsze. Co więcej, integracja z IDE (IntelliJ w moim przypadku) oczekuje "" połączenia każdego kroku pliku operacji <-> klasy java. Wypróbuj i powodzenia – troig

+1

Dzięki! Działa to, ale jest bardziej obejściem dla brakującej cechy ogórka. – ccpizza