Можно ли использовать 2 разные таблицы примеров в Cucumber / Cuke4Duke

#cucumber #cuke4duke

#cucumber #cuke4duke

Вопрос:

Можно ли каким-то образом создать сценарий, в котором используются две разные таблицы примеров на разных этапах? Что-то вроде этого:

 Given I log in
When I view a page
Then I should see <goodText>
Examples:
|goodText|
|abc|
And I should not see <badText>
Examples:
|badText|
|xyz|
  

Приведенный выше сценарий не работает, и в действительности в каждой таблице будет больше строк.

Ответ №1:

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

 Given I log in
When I view a page
Then I should see "abc"
But I should not see "xyz"
  

или, если вы хотите проверить наличие нескольких строк:

 Given I log in
When I view a page
Then I should see the following text:
  | abc |
  | def |
But I should not see the following text:
  | xyz |
  | uvw |
  

Комментарии:

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

2. Я отредактировал свой пост, чтобы проиллюстрировать, как вы могли бы это сделать. Нет необходимости в схеме сценария.

3. Хм, так как же я мог бы получить доступ к ‘abc’, ‘def’ и т.д. на моем шаге, если у меня нет заполнителя <goodText>?

4. Если вы запустите Cucumber против этого параметра, он предоставит вам определение шага контура с одним параметром, который будет представлять таблицу (Cucumber::Ast:: Table).

5. Спасибо за вашу помощь до сих пор. Я реализовал схему шага, но я не совсем понимаю, что делать с параметром ‘Cucumber :: Ast:: Table’, как я должен получить доступ к таблице или строке. Я даже не могу найти какую-либо приличную документацию по этому поводу, что раздражает!

Ответ №2:

Вы говорите, что на самом деле в таблице было бы намного больше строк; но, конечно, в таблице также может быть много столбцов.

Разве это не сработает для вас?

 Given I log in
When I view a page
Then I should see <goodText>
But I should not see <badText>
Examples:
|goodText| badText |
|abc     | xyz     |
  

Комментарии:

1. Нет, потому что не всегда существует равное количество goodText и badText. Я разобрался с этим, хотя см. Комментарий в приведенном выше ответе.