@vladikor

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

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

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

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

Похожие вопросы
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час