Чтобы убедиться, что я правильно понимаю проблему, вы обеспокоены тем, что вы повторили определение таблицы в шагах «Дано» и «Тогда» одного сценария (т. е. вы не запускаете 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
Это не очень понятно и требует настройки шага Then либо для обмена данными с шагом Given, либо для фактического запроса самого контекста фиктивных данных (очень плохой план, потому что тест может пройти по неправильной причине).
Если вы спрашиваете, есть ли что-нибудь в ключевом слове C++ #define
строки для настройки многократно используемой многострочной строки const - насколько мне известно, нет, и если бы было, вы не должны использовать его по причинам ясности выше.
В заключение - мне нравится ваш тест именно таким, какой он есть. :)
---- редактировать ---- Запоздалая мысль:
Тесты должны провалиться ровно по одной причине. Возможно, ваш тест проверяет, «данные таблицы точно верны».
Но иногда хочется просто протестировать что-то попроще. Например.
Then user 'alice' should appear in the users table
28.10.2013