CLI interactive integration tests с expect и Go — часть 2

В прошлой части мы сделали exp файл, который бы запускал наше интерактивное консольное приложение и взаимодействовал с ним.

В этой части мы напишем Go test, который будет при помощи cmd.Exec запускать exp файл, ждать ответа и делать какие-либо assertions.

Пример простого теста, который бы запускал наш expect файл и делал проверки ниже:

При запуске теста мы получим примерно следующий вывод:

В тесте мы можем добавить дополнительные проверки, например проверить что наше приложение создало файл или сделало какое-то дополнительное действие.

Очень важно понимать что при обновлении приложения нам нужно также пересоздать expect файл, иначе expect тест никогда не завершится.

Также важно установить таймаут на выполнение таких интеграционных тестов, допустим при запуске теста:

Тогда в случае превышения времени тайм аута наш тест аварийно завершится:

 

Leave a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.