У меня есть несколько написанных модульных тестов, которые проверяют обертку вокруг API сервера FTP .
И модульные тесты, и FTP-сервер находятся на одном компьютере.
API-оболочка развертывается на нашей платформе и используется в сценариях удаленного взаимодействия и веб-служб. API-оболочка, по сути, использует XML-сообщения для выполнения таких задач, как добавление / удаление / обновление пользователей, изменение паролей, изменение разрешений ... такая вещь.
В модульном тесте, скажем, для добавления пользователя в виртуальный домен, я создаю сообщение XML для отправки в API. API выполняет свою работу и возвращает ответ с информацией о состоянии о том, была ли операция успешной или неудачной (коды ошибок, ошибки проверки и т. Д.).
Чтобы проверить, действительно ли код API-оболочки действительно действовал правильно (если ответ показал успешность), я вызываю COM-интерфейс FTP-сервера и напрямую запрашиваю его хранилище, чтобы выяснить, например, при создании учетной записи пользователя аккаунт действительно создан.
Это плохо пахнет?
Обновление 1: @ Джереми / Ник: Оболочка находится в центре внимания тестирования, FTP-сервер и его COM API являются продуктами сторонних производителей, предположительно хорошо протестированными и стабильными. API-оболочка должна проанализировать сообщение XML и затем вызвать API-интерфейс FTP-сервера. Как бы я проверил, и это может быть глупым случаем, что определенное свойство учетной записи пользователя правильно установлено оболочкой. Например, установка неправильного свойства или атрибута учетной записи FTP из-за опечатки в коде оболочки. Хорошим примером является установка пределов скорости загрузки и выгрузки, которые могут быть перенесены в код оболочки.
Обновление 2: спасибо всем за ответы. Людям, которые предлагали использовать макеты, это пришло мне в голову, но свет там еще не включился, и я все еще пытаюсь понять, как заставить свою оболочку работать с макетом FTP-сервера. , Где будут находиться макеты, и я могу передать экземпляр указанных макетов в API-оболочку, чтобы использовать вместо вызова COM API? Я знаю о насмешках, но изо всех сил пытаюсь разобраться в этом, в основном потому, что я нахожу, что большинство примеров и учебных пособий настолько абстрактны и (стыдно сказать) граничат с непостижимым.