Как я могу протестировать промежуточное ПО Rack? - PullRequest
1 голос
/ 09 марта 2012

Я пишу промежуточное программное обеспечение, которое делает что-то вроде этого

Given I am logged in
When I visit home page
Then the request and all of my user information should get logged into CouchDB

Это в основном так, само промежуточное ПО не так уж сложно, но у меня проблемы с рабочим процессом.

Во-первых, я понятия не имею, как проверить что-то подобное. Сама функция довольно понятна, но как мне ее реализовать? Возможно, самый высокий уровень теста, который я могу сделать, это отправить запрос по curl, а затем проверить, сохранен ли он в CouchDB.

Проблема в том, что я не совсем уверен, на каком уровне я должен это тестировать, и какие типы тестов будут наиболее полезными. На данный момент я в основном нажму F5 и посмотрю в БД, если есть новая запись.

Приложение работает на Rails 3.2.2, и я использую couchrest gem для ведения журнала.

Ответы [ 2 ]

1 голос
/ 28 октября 2013

Это руководство по Sinatra должно помочь:

http://www.sinatrarb.com/testing.html

Возможно, вы также захотите перенаправить ведение журналов для своего промежуточного ПО на регистратор Rails в инициализаторе, чтобы вы могли видеть, что происходит, покаваши тесты запущены:

My::Awesome::Middleware.logger = Rails.logger

1 голос
/ 16 апреля 2012

Это похоже на место для интеграционных тестов.Если тесты интеграции стандартных рельсов обходят ваше промежуточное ПО, относитесь к нему как к стойке и используйте [https://github.com/brynary/rack-test]

...