Проблема
У меня есть приложение UDPlistener, для которого мне нужно написать модульный тест.Этот слушатель постоянно прослушивает порт и должен всегда работать на продукте.Мы используем библиотеки poco для каркасов, не входящих в стандартную библиотеку.
Теперь мне нужно добавить его в приложение для модульного тестирования.
Curent Solution
Я подумал, что проще всего реализовать Poco::Runnable
в классе RunApp
, который запускает приложение.Затем я могу создать новый Poco::Thread
в своем модульном тесте для запуска класса RunApp
.
Это работает;мой слушатель работает, и я могу отправлять тестовые сообщения в теле модульного теста после создания потока.НО, мне нужно остановить слушателя, чтобы могли выполняться другие модульные тесты.Я добавил UDP-сообщение, сообщающее слушателю, что нужно убить себя, но оно используется только модульным тестом и потенциальной проблемой безопасности.
Вопрос
Есть ли способ заставить Poco::Thread
прекратить?Или я неправильно структурировал этот юнит-тест?Я не хочу, чтобы слушатель работал во время всех остальных модульных тестов.