我正在研究用C语言编写的单元测试嵌入式系统代码的方法。
与此同时,我也在寻找一个可以使用的优秀UT框架。该框架应具有相当少的依赖性。
任何有优秀UT的开源产品?
编辑:
感谢你们的回答 - 我非常欣赏他们,但这并不是直接回答我的问题:
您知道任何使用C单元测试的开源代码吗?我希望看到它是如何完成的,以便我可以从代码中学到一些东西......
的
答案 0 :(得分:2)
模块化您的代码,使得底部有一个薄层,可以了解底层硬件的详细信息。然后可以在普通PC上模拟该层。这样,您可以使用普通的单元测试库进行桌面开发,以测试除薄底层之外的所有代码。
我在为Linux开发嵌入式软件方面的经验是使用C ++而不是简单的C.我们使用cppunit进行单元测试。
答案 1 :(得分:1)
编辑:在check project page上有一个使用Check as unit test framework的项目列表。某些链接已过时,但您可以浏览pigment和SCEW的单元测试的来源;一个人必须下载其他人的来源。
minunit根本没有依赖关系,可以用作构建自己框架的基础。
就方法而言,我从最低级别的函数(叶子)开始。通常,当我测试更高级别的功能时,他们会调用更低级别的功能。这不是问题,因为已经测试了较低的功能。
我还将代码模块化为“对象”或对象表。存根功能允许独立于硬件或其他组件进行测试。
我通过删除它们的定义删除静态,或者将包含要测试的函数的源文件包含在单元测试源文件中。
#if defined(UNIT_TESTING)
#define STATIC
#else
#define STATIC static
#endif
这里没有火箭科学,但这就是诀窍。
最后一件事,测试行为,而不是实现,以便在实现更改时单元测试不会中断。