Чтобы проверить, что я правильно понял проблему, вы обеспокоены тем, что вы повторили определение таблицы в шагах «Дано» и «Затем» одного сценария (т. Е. Вы не используете 100 аналогичных сценариев, для которых требуется один и тот же набор таблиц вверх).
Похоже, что у вас все хорошо.
Рассмотрите, что произойдет, если пользовательский интерфейс потребует небольшого количества преобразований данных. , например.
Given I am logged in as "Admin" user
And There exists following users
| Username | First name | Last Name | Registration date |
| alice | Alice | Wonderland| 2013-10-28 |
| bob | Bobby | Tables | 2013-10-27 |
When I go to all users page
Then There should be following users in table
| Username | Full Name | Registration date |
| alice | Alice Wonderland | 2013-10-28 |
| bob | Bobby Tables | 2013-10-27 |
Этот сценарий ясен, и вы не можете сохранить здесь какое-либо место.
Повторяя таблицу точно так же, как вы это сделали, вы четко указываете в своей тестовой/живой документации, что то, что вы видите на странице, должно точно соответствовать представлению данных в памяти. Это стоит выразить в тесте.
Других вариантов, которые могли бы сэкономить место:
Given I am logged in as "Admin" user
And there exists the following users
| Username | First name | Last Name | Registration date |
| alice | Alice | LAlice | 2013-10-28 |
| bob | Bob | LBob | 2013-10-27 |
When I go to all users page
Then I should be able to see all the users
Это не очень понятно, и требует Наладку Затем шаг к или акции с заданным шагом, или на самом деле запрос фиктивного контекст данных самого (очень плохой план, потому что тест может пройти по неправильной причине).
Если вы спрашиваете, есть ли что-то ключевое слово C++ для C++ для создания многострочной строки строки const, то, насколько мне известно, и если бы это было так, вы не должны использовать его по причинам ясность выше.
В заключение - Мне нравится ваш тест именно так, как есть. :)
---- редактировать ---- Запоздалая мысль:
Тесты должны терпеть неудачу именно по одной причине. Возможно, ваш тест проверяет «данные таблицы точно соответствуют».
Но иногда вы просто хотите проверить что-то более простое. Например.
Then user 'alice' should appear in the users table
+1 Это очень полезный альтернативный способ смотреть на этот тест.Как вы говорите, это полезно для тестирования немного другого аспекта: т. Е. «Могу ли я отображать на своей странице каждую из следующих строк данных» - очень хорошо, если вас беспокоят такие вещи, как форматирование Unicode или html/javascript. Если тест будет проверять такие вещи, как целостность по всему набору данных или автосортировке и т. Д., Тогда это будет не так уместно. – perfectionist
@perfectionist да, вы правы и рады, что вы оцениваете ответ. Мой ответ показывает, как удалить дублирование данных из ваших файлов функций, но, как вы говорите, вы теряете возможность проверить, что все записи присутствуют на экране во время дам. –