Тестирование клиентского приложения на Rails - PullRequest
0 голосов
/ 22 августа 2011

У нас есть приложение Rails с restful API и другое приложение Rails с клиентом (ActiveResource) для этого API.

Как мы можем создать набор тестов (предпочтительно Rspec) для клиента API с оригинальным веб-сервером, который запускает этот API, не дразня его?

Ответы [ 3 ]

0 голосов
/ 13 июня 2013

Я создал набор тестов (используя Cucumber, rspec для утверждений, ruby ​​и FactoryGirl для создания объектов), который попадает в API в процессах и создает / удаляет объекты в базе данных для приложения rails 3.

Закажите в моем блоге примеры и код: Блог автоматизации

0 голосов
/ 27 января 2014

Попробуйте webmock, чтобы смонтировать приложение Rails API в качестве цели для вызовов от клиента.

См. http://robots.thoughtbot.com/how-to-test-sinatra-based-web-services

0 голосов
/ 22 августа 2011

Задумывались ли вы, действительно ли это то, что вы хотите? Смысл тестовых наборов заключается в тестировании всех компонентов, а затем их взаимодействия. Если у вас есть хорошие модульные тесты, то имитация мало чем отличается от использования данных prod в ваших интеграционных тестах.

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

Мой совет: пишите надежные модульные и функциональные тесты, а затем доверяйте имитационным данным для интеграционных тестов.

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