我正在寻找一个REDHAWK组件单元测试的示例。特别是,我想要一个测试,在这个测试中,我可以向输入端口提供数据包,并验证正确的数据包是从输出端口推送的。对红鹰来说,有什么更好的方法吗?我很难找到文档或例子。
发布于 2016-01-04 05:13:36
下面是HardLimit组件使用的一个示例:
基本上,在setUp方法中,创建来自REDHAWK (sb)模块的DataSource和DataSink,并与组件一起启动,然后按照适当的顺序连接。
接下来,任何以“test”开头的方法都由单元测试套件运行。通常,这些方法将向DataSource提供一个数据数组,后者将将数据格式化为BULKIO格式并推送到您的组件。假设组件正常工作,它将将数据推送到DataSink,可以定期检查新数据。一旦收到数据,就可以在调用tearDown方法之前对其进行适当的验证。
最后,tearDown方法停止并释放组件并清理源和接收器。
这是测试组件的基本方法。有更多的选项可用于获取和挖掘数据,可以通过在python解释器中运行以下命令找到这些选项:
from ossie.utils import sb
help(sb)这也将提供绘制数据和音频播放的方法,以及其他杂项实用程序。
发布于 2016-01-02 22:12:55
使用RedHawk可以很容易地添加几个新组件:一个向被测试的组件发送数据包,另一个接收输出包。我使用serviceFunction()在sender.cpp中创建一个发送方或源数据包,如果每个调用返回正常,则定期调用该包,如果希望控制速率,则添加一个us休眠()。它应该向它的this->PortName->MethodName()发送一个有效的数据包。如果您想测试被测试的组件如何处理它们,它也可以随机发送坏的数据包。您甚至可以添加一个组件属性来设置速率(使用us休眠中的值)。
接收器或接收器组件可以在port_impl.cpp中接收MethodName()中的数据包,并执行您想要测试有效性的任何测试,记录测试结果或使用cout<
https://stackoverflow.com/questions/34566970
复制相似问题