параметризировать примеры в запросах на огурец - PullRequest
0 голосов
/ 10 декабря 2018

Я новичок в огурце.У меня есть требование использовать переменные вместо фактических значений в примере файла объектов.Фактические значения должны быть заполнены в отдельном файле свойств.
Пример файла функций:


    @tag
    Feature: Add an element to stack
      The user pushes an element. It gets added to stack
      @tag1
      Scenario: Push element to empty stack
        Given Stack is empty
        When User pushes an element
        Then stack should have only one element

      @tag2
      Scenario Outline: Push element to stack
        Given Stack has {initial} elements
        When User adds {new} element
        Then Length of stack increases to {new_size}
        | initial       | new       | new_size       |
        |           1   |       2   |               2|
        |           5   |       9   |               6|
        |           0   |       3   |               1|

Пример вывода должен выглядеть следующим образом:


    | initial       | new       | new_size       |
    |   {val1_1}    |{val1_2}   |        {val1_3}|
    |   {val2_1}    |{val2_2}   |        {val2_3}|

Я использовал "{}"вместо" <> ", поскольку я не могу печатать элементы внутри <> в предварительно отформатированном коде

1 Ответ

0 голосов
/ 10 декабря 2018

Используйте наброски сценария с примерами.Это решит ваши запросы на основе ввода данных.Например,

 @tag2
 Scenario Outline: Push element to stack
  Given Stack has <initial> elements
  When User adds <new> element
  Then Length of stack increases to <new_size>
  Examples:
  | initial | new | new_size |
  | 1       | 2   | 2        |
  | 5       | 9   | 6        |
  | 0       | 3   | 1        |

И определение вашего шага будет выглядеть следующим образом,

        Given("^Stack has (.*) elements$", (String initial) -> {
        // Write code here that turns the phrase above into concrete actions
        throw new PendingException();
    });

Аналогично, для других параметров запроса, таких как (name, new_size).

...