Можно ли использовать таблицы Behat для проверки нескольких текстовых меток

Использование Behat с расширениями mink и Drupal.

По сути, у меня есть страница с несколькими ярлыками, и я хочу подтвердить их текст. Я хочу сделать это без необходимости вводить что-то вроде.

Then I should see "Filter"

Есть ли способ проверить весь текст, который я ожидаю, используя Pystrings или Tables, аналогично тому, как они могут использоваться для заполнения текстовых полей:

And I fill in "Options" with:

Просто подумал, что может быть проще проверить все сразу, чем выполнять несколько шагов.

=====

Обновлять:

Получив некоторое указание от dblack, я использовал следующее внутри его собственной функции для проверки всех меток, которые попадают на одну и ту же страницу:

Примечание. Я использую расширения mink и UIBusinessSelector. Также «логин» — это пользовательская функция.

Общие сведения. Во всех сценариях требуется вход в систему с правами администратора, затем создание фильтра и подтверждение ярлыков страниц
Учитывая, что я вхожу в систему как администратор
Когда я перехожу на страницу "Фильтр продуктов"
И Я нажимаю кнопку «Добавить фильтр».

   Scenario Outline: Verifying page text
   Then I should see "<ThisText>"
   Examples:
  | ThisText |
  | Filter by SKUs             |
  | Filter by Package Name     |
  | Filter by Campaign Medium  |
  | Filter by Product Category |
  | Filter by Product Selection |
  | Filter by Product Holiday Experience |
  | Filter by Product Star Rating |
  | Filter by Product Destination |
  | Filter by Product Duration |
  | Filter by Product Supplier |
  | Filter by Air Ex Point     |
  | Filter by Land Ex Point    |
  | Filter by Product departure |
  | Filter by Ship name        |
  | Filter by Cruise Line      |
  | Remove $0 products        |
  | Human readable name       |

person Scotty G    schedule 12.03.2014    source источник
comment
Просто напишите собственную реализацию этого шага.   -  person Jakub Zalas    schedule 12.03.2014


Ответы (1)


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

Scenario Outline: Check labels
    Given I am logged on as "someuser"
    When I go to the homepage
    Then I should see "<mylabel>"
    Examples:
    | mylabel          |
    | Filter           |
    | Some Other Label |
    | Another Label    |

Недостатком является то, что схемы сценариев являются шаблонами, где схема сценария запускается один раз для каждого из предоставленных примеров - для вашего примера вы просто хотите знать, что все метки находятся на странице, поэтому вы действительно не хотите делать журнал in и запрос для каждой метки.

Если бы я хотел убедиться, что страница содержит все метки, которые должны были быть, я бы просто сделал это (сценарий будет запущен только один раз):

Scenario: Check labels
    Given I am logged on as "someuser"
    When I go to the homepage
    And I should see "Filter"
    And I should see "Some Other Label"
    And I should see "Another Label"
person dblack    schedule 13.03.2014
comment
Привет, пробовал это, но проблема в том, что он сбрасывает сценарий, используя схему сценария, а затем не выполняет шаги, указанные в схеме сценария. Например. у меня есть фоновый шаг, который регистрирует пользователя. Затем этот шаг проверяет текст страницы, но проблема в том, как мне перейти на страницу, которая мне нужна, поскольку она, по сути, просто запускает шаг входа в систему, и я не могу определить страницу для него в схеме сценария? в любом случае обойти это, не переходя на страницу в «фоне», что затем повлияет на остальные тесты сценариев, которые я включил в эту функцию. - person Scotty G; 14.03.2014
comment
Привет, Скотти, фон и другие шаги в сценарии должны выполняться для каждого примера - я отредактировал свой ответ, чтобы отразить это, но также дал лучший пример. Наброски сценария (для поддержки вашего желания поместить метки в таблицу) имеют место быть, но, вероятно, не лучшая идея для ваших нужд? - person dblack; 17.03.2014
comment
Привет, dblack, по сути, я хотел уйти от перечисления их всех, как я должен видеть. нашел способ сделать это на основе вашего первоначального ответа, однако мне нужно было создать отдельную функцию, содержащую «фон», подробно описывающий все начальные шаги, ведущие к этой странице. - Обновили первоначальный вопрос с этим. - person Scotty G; 18.03.2014