Чтобы протестировать некоторые вызовы API, которые мы делаем в приложении, мы настроили небольшой HTTP-сервер, который имитирует то, что делает настоящий рабочий сервер. Он имеет те же конечные точки, но работает на локальном хосте и дает ложные ответы. Он написан на Node.js с использованием Express.
Пока (ручное) тестирование на этом сервере хорошо, все работает нормально. Недавно мы пытались автоматизировать этот процесс для модульного тестирования. Мы хотим, чтобы для каждого теста в наборе тестов:
- Запустить сервер тестов HTTP (например, в подпрограмме
beforeEach
); - Запустите модульный тест, который вызывает сервер и проверяет ответы;
- Остановите тестовый сервер HTTP (например, в подпрограмме
afterEach
).
Наш Первый подход заключался в использовании child_process
для запуска / уничтожения сервера, но, похоже, он не работает по причинам, которые мы не можем понять (особенно на нескольких ОС. Сейчас нас интересует в основном Windows / Linux).
Как бы вы подошли к этой проблеме? Является ли подход child_process
хорошим? Есть ли альтернативы?
Мы работаем над этим с некоторого времени и, похоже, ничего не работает на всех ОС ...
Примечание: мы тестируем с использованием Jest.