Как проверить условия ошибки с помощью кода, который взаимодействует с удаленными веб-серверами?

У меня есть небольшой проект, который в основном представляет собой оболочку Python для API веб-сайтов.

Он довольно хорошо протестирован, но есть некоторые условия, при которых я не могу понять, как легко протестировать: когда удаленный API недоступен или иным образом сломан.

В частности, мне бы хотелось провести тест по каждому из следующих элементов:

  • Когда сайт недоступен (тайм-аут соединения)
  • Когда сайт доступен, но возвращает код ошибки HTTP (например, ошибка 404 или 500)
  • Содержимое искажено. Сайт имеет XML-интерфейс. Некоторое время назад на сайте были проблемы, и страница, которая должна была быть файлом XML, была страницей HTML, которая нарушила синтаксический анализ XML.

Как я могу протестировать эти случаи? Единственное, что я могу придумать, это изменить URL-адрес API на несуществующий сервер (в случае недоступности) и локальный веб-сервер для ошибки 500/404 / искаженные данные.


person dbr    schedule 20.11.2008    source источник
comment
Что не так с предложенным вами решением? Для меня это звучит совершенно логично.   -  person Greg    schedule 20.11.2008


Ответы (1)


Другой ответ - смоделировать код, который фактически выполняет вызовы веб-сайта, и заставить его возвращать требуемые условия ошибки. Я предполагаю, что это означает имитацию urllib или httplib в python

person Andrew Cox    schedule 20.11.2008