HTTP-сервер для модульных тестов в Delphi - PullRequest
7 голосов
/ 27 февраля 2012

Мне нужно протестировать некоторые компоненты HTTP в моем приложении Delphi.Я использую DUnit и хочу добавить немного автоматизации в тестирование.

Итак, мой тестовый код должен запустить локальный HTTP-сервер, настроить его (например, подготовиться к разрыву соединения за 3 секунды, или имитировать низкую пропускную способность, или запросить логин / пароль и т. Д.), Запустить мойюнит-тесты и закрытие HTTP-сервера.

Есть ли какие-либо HTTP-серверы, доступные именно для Delphi / DUnit?

Я знаю, что у команды Mozilla есть такой сервер , но его не так просто интегрировать в DUnit.

Ответы [ 3 ]

10 голосов
/ 27 февраля 2012

Я использую Indy's TIdHttpServer, чтобы обслуживать вещи в том же процессе.

Этот подход позволяет мне проверить правильность входящих запросов, а также проверить поведение со стороны клиента.

Кроме того, вы можете индивидуально настроить сервер на тестовый набор для каждого тестового набора, что упрощает понимание ваших модульных тестов (это означает, что у вас нет части «теста» где-то еще).

0 голосов
/ 27 февраля 2012

Если вы тестируете сервисы SOAP, используйте SoapUI, чтобы настроить «фиктивный» сервис на основе вашего WSDL. Вы можете сделать так, чтобы он возвращал различные ответы (или последовательно, или использовать несколько простых сценариев для сопоставления ответов с содержимым запроса.) Я сделал это, сопоставив «идентификатор запроса» (просто GUID) в моем запросе, отправленном из DUnit test, для ответа в SoapUI. Это простой запрос xpath, чтобы сопоставить их.

Вы можете сделать так, чтобы он возвращал «законсервированные» ошибки / исключения, и, конечно, когда он не запущен, у вас будет тестовый пример «никто дома».

0 голосов
/ 27 февраля 2012

Вы можете использовать unit test / DUnit для создания автоматических интеграционных тестов. Скажем, компоненты HTTP, как клиент http, делают вызовы к веб-службе. Вы можете создать свой собственный фиктивный веб-сервис или просто использовать любой общедоступный веб-сервис, например один из сервисов Google или Amazon. Так что вам просто нужно создать учетную запись разработчика Google или Amazon и использовать некоторые основные сервисные функции для тестирования.

...