嵌入式系统代码具有良好的单元测试

时间:2010-03-25 19:20:43

标签: c unit-testing embedded-linux

我正在研究用C语言编写的单元测试嵌入式系统代码的方法。

与此同时,我也在寻找一个可以使用的优秀UT框架。该框架应具有相当少的依赖性。

任何有优秀UT的开源产品?

编辑:

感谢你们的回答 - 我非常欣赏他们,但这并不是直接回答我的问题:

您知道任何使用C单元测试的开源代码吗?我希望看到它是如何完成的,以便我可以从代码中学到一些东西......

2 个答案:

答案 0 :(得分:2)

模块化您的代码,使得底部有一个薄层,可以了解底层硬件的详细信息。然后可以在普通PC上模拟该层。这样,您可以使用普通的单元测试库进行桌面开发,以测试除薄底层之外的所有代码。

我在为Linux开发嵌入式软件方面的经验是使用C ++而不是简单的C.我们使用cppunit进行单元测试。

答案 1 :(得分:1)

编辑:在check project page上有一个使用Check as unit test framework的项目列表。某些链接已过时,但您可以浏览pigmentSCEW的单元测试的来源;一个人必须下载其他人的来源。


minunit根本没有依赖关系,可以用作构建自己框架的基础。

就方法而言,我从最低级别的函数(叶子)开始。通常,当我测试更高级别的功能时,他们会调用更低级别的功能。这不是问题,因为已经测试了较低的功能。

我还将代码模块化为“对象”或对象表。存根功能允许独立于硬件或其他组件进行测试。

我通过删除它们的定义删除静态,或者将包含要测试的函数的源文件包含在单元测试源文件中。

#if defined(UNIT_TESTING)
#define STATIC
#else
#define STATIC static
#endif

这里没有火箭科学,但这就是诀窍。

最后一件事,测试行为,而不是实现,以便在实现更改时单元测试不会中断。