C单元测试包设计与实现

在Java、C++和C#等高级语言的单元测试正进行的如火如荼的时候,C好像做了看客,冷清的躲在了一个不起眼的角落里。C并不是没有单元测试工具,像Check和CUnit这样的工具也很有名气,只是和大名鼎鼎的JUnit比起来,还是显得有些英雄气短。很多大型的C项目,如APR等都没有使用像Check、CUnit这样通用的单元测试框架,而是另起炉灶自己编写。其实编写一个仅能满足单个项目需要的C单元测试工具包并非难事。在部分参考APR的ABTS的前提下,我们也来设计一套自己的简单的C语言单元测试包。 鉴于减少复杂性,我们的目标仅仅是设计和实现一套能在单进程、单线程下工作良好的C单元测试包,我们暂且将之命名为CUT – C Unit test Toolkit。 1、CUT涉及的术语解释 曾经接触过多个有名的单元测试框架如JUnit、CppUnit、TestNG等,它们在对单元测试某些概念的理解上并不是全都一样的。这里我们也有我们自己的定义。 a) 一个逻辑unit test包含至少一个或者多个suite; b) 一个suite包含至少0或者多个test case; c) 每个test case中至少包含1个或者多个“断言类”语句。 ...

November 8, 2005 · 5 min · Tony Bai

CppUnit入门实践-Tony与Alex的对话系列

Tony : Hi Alex ! you just looks like drowing in your project. what is up? Alex : 我们的项目要求引入单元测试,but i’ve no experience in unit test. Tony : i think cppunit is your best choice. Alex : 是的,我刚从网上把它down了下来,正准备研究它呢。 Tony : Really ? I have done some practice on unit test before. would you like me to join you? Alex : Oh Tony, I’m so glad that you could help me ! Tony : My pleasue ! Alex : 我们从哪里开始呢? Tony : The simplest case! 我们拿一个最简单的例子吧。now we have a class with the name “SimpleCalculator” and it has four basic methods ‘add’, ‘sub’, ‘mul’ and ‘div’, All we should do is to test whether these methods run as same as we expect. First of all , complete the “SimpleCalculator” class, Alex. Alex : It is simple! ...

May 30, 2005 · 4 min · Tony Bai