[C]最简Unity单元测试例程

simplest unity test framework example

接触到C语言的TDD,Test-driven development,即“测试驱动开发”。感觉自己也真要在自己的开发中加入自动化测试,让自己写出更加robust的代码,而不是运行得出结果就心满意足,看看能不能有一天做到写代码之前先写出测试,真正做到测试驱动。

在Ruby上,因为“约定优于配置”的关系,尤其是rails开发,要作测试相对简单。因为框架都搭好了。而对于C/C++来说,作测试就没那么容易。我看的是《Test Driven Development for Embedded C》这本书,里面提到的两个C语言的测试框架是UnitycppUnit。自己进一步搜索还发现很多单元测试框架,比方说Googletest。不过感觉大多数的介绍都关注于测试用例的编写,而对于如何引入这些框架基本略过不提,一个make就搞定的样子,以至于憋了好多测试用例却不知道如何实验的问题。

好在Unity的源码中还是包含examples,不过咋一看还是感觉很复杂,因为 Unity 的“高级”用法中,可以采用 ruby 借助 rakefile 来实现自动化测试,所以同两个例子都有 make 和 rake 两种用法,而且还混在一起。对于我来说,只要有make就可以。所以我对Unity官方例程中的代码进行了大刀阔斧的裁剪,只保留一个例子,而且去掉了ruby 的干扰。

UNITY_HOME = /home/agu/gitpool/Unity/src
# change UNITY_HOME to the local Unity path/src
# it coulde be generated by $ git clone https://github.com/ThrowTheSwitch/Unity.git

在自己的实践中,只需要将 makefile 中,的UNITY_HOME改为自己本地的 Unity/src 目录即可,而这个Unity目录,可以直接通过

$ git clone https://github.com/ThrowTheSwitch/Unity.git

下载生成。

这样就是一个独立与Unity目录的最简项目,目录结构及 make 的效果如题图所示。

SimplestUnityTestExample 的 Github 托管地址:https://github.com/aguegu/SimplestUnityTestExample

关于aGuegu

向着更高的逼格
此条目发表在杂七杂八 | Other分类目录,贴了, , , , , 标签。将固定链接加入收藏夹。