Управление огурцами и тестовыми данными для не-Ruby приложений

Я тестирую приложение, которое в основном является приложением для обработки сообщений - приходит сообщение, его содержимое анализируется, а затем отправляется в другое место для обработки. Приложение не встроено в Ruby.

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

Функционально тестирование проходит успешно, но в настоящее время у меня есть все тестовые сообщения и желаемые адреса сообщений, определенные в коде Ruby - я бы хотел переместить их либо в файл YAML, либо (второй выбор) в базу данных. Я бы предпочел использовать файл YAML над базой данных, потому что это проще для контроля версий, а для нетехнических тестеров - редактировать содержимое сообщений напрямую.

Есть ли «рекомендуемый» способ реализации такого рода управления данными в Cucumber? Это вроде как пахнет подходом к фикстурам, но мне кажется, что для фикстур всегда требовалось заполнить базу данных из файла, а затем использовать БД для тестирования, и я не уверен на 100%, что это лучшее / простое соответствие для этого конкретного проблема.

31.08.2009 09:00:43
1 ОТВЕТ

Я верю, что вас больше всего порадует план сценария . Возможно, вы могли бы создать файл yaml, загружая его с шага, но это не сделало бы очень полезный тестовый вывод. То, что вы (я думаю) действительно хотели бы, чтобы каждое сообщение и пункт его назначения были отсортированы по погоде, когда оно прошло или не прошло. Приведенный ниже пример относится к неудачным входам в систему, но он дает общее представление.

Scenario Outline: Failed Login
  Given I am not authenticated
  When I go to "/login"
  And I fill in "login" with "<mail>"
  And I fill in "password" with "<password>"
  And I press "Log In"
  Then the login request should fail
  Then I should see an error message

  Examples:
    | mail           | password       |
    | not_an_address | nil            |
    | not@not        | 123455         |
    | 123@abc.com    | wrong_paasword |

Каждый пример станет зеленым, красным или желтым в зависимости от того, сработал он, не сработал или ожидал.

3
1.09.2009 02:55:49
Это казалось очень интуитивным, но я заметил, что последняя рекомендация огуречного вики - не совмещать тесты и данные. Я понимаю, что это очень старый д / а, поэтому все могло измениться. Вы использовали что-нибудь вроде .. github.com/cheezy/data_magic и какие-нибудь мысли об этом или подобные драгоценные камни?
HakunaM 19.04.2016 21:52:08