我正在开发一个通过RS-422端口与FPGA进行串行通信的库。这个库是一个更大项目的一部分。
我知道我可以测试它的某些部分,比如消息生成。您可以设置输入,并且可以测试字节数组是否与预期的字节数组匹配。但是,如果我想做一个更通用的测试,我该如何为它生成单元测试呢?我必须要写一个FPGA行为的模拟器吗?是否可以单独测试库?
发布于 2009-08-11 14:17:16
我要说的是,使用模拟器或mock进行测试将使您能够更容易地测试代码路径,而不是刺激真实的代码路径。
理想情况下,一个人使用一些预先存在的东西。否则,构建仿真可能不是一件小事。但是,如果你不能很好地理解协议,不能模拟它,那么你肯定不能与它通信:-)
发布于 2009-08-11 14:18:32
您可以创建一个模拟类,它将作为模拟器工作。只要让你的write函数处理你发送的信息,并将结果保存在某种缓冲区中,就可以是一个普通的字符串。然后创建一个read函数来读取字符串,擦除它,然后将其返回给您。
发布于 2009-08-11 14:28:59
您是要对FPGA的驱动程序进行单元测试,还是要对协议进行单元测试?因为如果你想同时测试两者,在我看来它已经像是一个(系统)集成测试了。
是,可以单独测试通信库。确保您的通信协议与设备驱动程序没有太多交织;这样,您就可以单独测试它。
我的建议是:
在测试FPGA+communications库时,我会感兴趣的错误类型:
至于模拟:我在Matlab/Simulink中运行代码(即使用TrueTime,一个免费的插件)得到了非常好的结果。然后,可以使用Simulink将其与回路中的硬件(HIL)或回路中的模型挂钩。或者,也可以使用软件模型(但如果您接近硬件,通常很难模拟非常有趣的异步事件;即中断处理程序)
https://stackoverflow.com/questions/1260626
复制相似问题