问题
我有一个UDP监听应用程序,需要编写一个单元测试。该监听器不断侦听端口,并且旨在始终在产品上运行。我们使用poco库来进行标准库之外的框架。
现在我需要将其添加到单元测试应用程序中。
当前解决方案
我认为最简单的方法是在一个名为RunApp
的类中实现Poco::Runnable
,以运行该应用程序。然后,在我的单元测试中创建一个新的Poco::Thread
来运行RunApp
类。
这个方法可行;我的监听器正在运行,我可以在线程生成后在单元测试主体中发送测试消息。但是,我需要停止监听器以便其他单元测试可以运行。我添加了一个UDP消息,告诉监听器自杀,但这只被单元测试使用,可能存在安全问题。
问题
有没有一种方法可以强制停止Poco::Thread
?或者我错了吗?我不希望监听器在所有其他单元测试期间运行。