#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. Я разобрался с этим, хотя см. Комментарий в приведенном выше ответе.