Я разрабатываю обновление для своего приложения. До сих пор я создал почти все модульные тесты, но я понятия не имею, как протестировать определенный класс, который подключается к FTP-серверу и загружает новые версии.
Чтобы протестировать этот класс, должен ли я создать тестовый сервер FTP и использовать его в своих модульных тестах? Если да, то как я могу убедиться, что этот FTP-сервер всегда соответствует моим тестам? Должен ли я вручную создавать каждый файл, который мне понадобится до начала теста, или я должен автоматизировать его в своем тестовом классе (методы срыва и настройки)?
Этот вопрос также относится к классам тестирования модулей, которые подключаются к любому серверу.
ИЗМЕНИТЬ
Я уже высмеиваю свой ftp-класс, поэтому мне не всегда нужно подключаться к ftp-серверу в других тестах.
Позвольте мне посмотреть, правильно ли я понял, что сказал Уоррен в своем комментарии:
Я бы сказал, что как только вы разговариваете с отдельным приложением по TCP/IP мы должны назвать это "интеграционными тестами". Один больше не тестирует единица или метод, но система.
Когда unit test должен взаимодействовать с другим приложением (которое может быть HTTP-сервером или FTP-сервером), это уже не unit test, а сервер интеграции? Если это так, я делаю это неправильно, пытаясь использовать методы модульного тестирования для создания этого теста? Правильно ли говорить, что я не должен unit test этот класс? Это имеет смысл для меня, потому что это кажется большой работой для unit test.