Как протестировать библиотеку Python, упаковывающую внешнюю службу REST (без обращения к службе) - PullRequest
1 голос
/ 31 октября 2011

Я пишу библиотеку Python для доступа к REST API Ubuntu One. (Да, я знаю, что он уже существует; это проект «царапинам, чесаю и учусь, пока делаю»).

Библиотека будет относительно тонкой оболочкой для вызовов REST. Я хотел бы иметь возможность протестировать мою библиотеку, не нажимая U1 вообще. Каков наилучший стандарт практики, чтобы сделать это возможным?

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

1 Ответ

1 голос
/ 31 октября 2011

Ваша точка отсечения - HTTP-запросы.

Напишите фиктивную библиотеку, которая перехватывает отправку HTTP-запросов.Вместо того, чтобы отправлять их, преобразуйте их в строку и проанализируйте их, чтобы проверить код отправки.

Для получения кода смоделируйте обработчик ответа.Сохраните хороший ответ от REST-сервера в строке и создайте из него объект HTTP-ответа для проверки вашего получателя.

Напишите несколько тестовых случаев, которые создают эти запросы на основе реальных данных, чтобы вы могли быстро проверить, чтозапросы / ответы хорошие.

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