@vladikor

Как организовать прерывание бесконечных циклов в тестах?

Мне по наследию достался проект написанный на GO (comet сервер) и сейчас стоит задача все покрыть интеграционными тестами.
Comet осуществляет обработку сообщений из каналов (go каналы) в бесконечном цикле, далее обрабатывает эти сообщения.
Вообщем как лаконично организовать прерывание такого цикла в тестах, после того как все сообщения обработаны?

У меня есть только одна мысль - это добавление нового канала, который будет отвечать за прерывание цикла, но что-то такое ...
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
EvgenyMamonov
@EvgenyMamonov Куратор тега Go
Senior software developer, system architect
Закрыть канал в тесте, а функция читающая в цикле сообщения должна при этом корректно завершиться.
Пример:
data, ok := <-channel
if !ok {
    return
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы