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

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

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

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

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

1 Ответ

3 голосов
/ 01 сентября 2009

Я верю, что вы будете больше всего довольны, это Схема сценария . Возможно, вы могли бы создать файл 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 |

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...