Выполнение полуавтоматического тестирования с ruby - PullRequest
3 голосов
/ 27 августа 2011

Я пишу гем с открытым исходным кодом, который взаимодействует со службой SMS.Я хочу протестировать взаимодействие, но для этого ему нужны данные учетной записи и номер телефона.Он также нуждается в обратной связи, чтобы определить, правильно ли отправлялись смс-сообщения.Это вызывает две проблемы:

  1. Я не могу поместить информацию об учетной записи в тестовый файл, поскольку гем имеет открытый исходный код, и любой может получить к нему доступ.

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

Какие методыили есть библиотеки, которые могут помочь с этим?В настоящее время я использую rspec и заставляю его запрашивать параметры (используя get), однако на данный момент это довольно неуклюже.Я не могу быть первым человеком, использующим ruby, чтобы иметь эту проблему, и я чувствую, что мне не хватает драгоценного камня или чего-то, что решает эту проблему.

Ответы [ 3 ]

3 голосов
/ 27 августа 2011

Использовать макеты

Какие конкретно тесты вы проводите? Что данный логин / пароль работает? Возможно нет. Скорее всего, вы хотите убедиться, что ваш код правильно реагирует на API. Поэтому я бы предложил издеваться. Сохраните выходные данные вызовов API и используйте фиктивный сервис для возврата этих ответов. Тогда проверь. Ваши тесты будут быстрее и менее хрупкими, как счастливый побочный эффект.

Больше информации о насмешках с RSpec здесь: http://rspec.info/documentation/mocks/

2 голосов
/ 27 августа 2011

Re 1) Почему бы просто не сохранить параметры конфигурации в файле YAML и загрузить их в начале ваших тестов?

Re 2) Возможно, есть какие-нибудь веб-сервисы для этого? Например. тот, где вы можете отправить сообщение и запросить API, чтобы увидеть, работает ли он. Я знаю, что это может быть ненадежно, но то же самое верно для сети телефонной компании пользователя.

1 голос
/ 27 августа 2011

+ 1 за ответ Марка Томаса о насмешках.Еще две альтернативные библиотеки фиктивных объектов для Ruby: FlexMock и Mocha

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