Вопрос

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

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

Существуют ли HTTP-серверы именно для Delphi/DUnit?

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

Это было полезно?

Решение

Я использую Инди TIdHttpServer обслуживать вещи в одном и том же процессе.

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

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

Другие советы

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

Если вы проверяете SOAP Services, используйте SOAPUI, чтобы встать на службу «MOCK» на основе вашего WSDL. Вы можете получить его вернуть различные ответы (последовательно или использовать несколько простых сценариев, чтобы соответствовать ответам на содержимое запроса.) Я сделал это, сопоставляя «идентификатор запроса» (просто GUID) в моем запросе, отправленном изDunit Test, к ответу в Soapui.Это простой запрос XPath, чтобы соответствовать их.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top