测试 DDS reader 接收消息以进行 java 单元测试

Testing DDS reader receiving message for java unit test

我有一个单元测试,我可以在其中测试当前发送 DDS 消息。但是,我 想要实现测试消息 reader 的能力。

问题是,由于用于创建 DDS reader 和编写器的程序设置。如果我尝试制作我需要的 reader,它们已经具有与作者相同的 topic,因此抛出异常。

有没有人想出一种方法来模拟将 DDS 消息发送到 reader,就好像它们来自 DDS 编写器一样?在一台计算机内,不要在网络上使用单独的计算机。

您可以在 DomainParticipant 上使用 lookup_topicdescription() 来获取对先前创建的 Topic 的引用(如果存在)。在伪代码中,你可以做类似

的事情
use lookup_topicdescription() to see if topic exists
if topic does not exist
  use create_topic() to create the topic

如果您的应用程序在多线程中执行此操作,那么您将必须获取并释放此代码周围的锁。