艾智杰
同济大学电子信息与工程学院计算机应用技术系,上海 201804
测试驱动开发(TDD)是一种基于循环开发的软件开发过程。遵循TDD的编程人员,在正式进行开发之前,通常先要确定在本阶段需要实现的改进或者新功能,然后通过编写一系列的测试代码来检验这些改进和功能。一般情况下,这些测试代码都会运行失败。接下去的任务便是编写能够使得这些测试通过的代码,并且在完全通过测试后,重构代码,以达到生产标准。这个过程将会一直循环下去,直到所有的改进或者功能完成。下图展示了这一过程。

图1 基于TDD的开发循环
CxxTest是专门为C++语言所开发的TDD框架。它具有不需要RTTI,可以承载外部库,处理异常等优点。作为一种轻量级框架,CxxTest将所有的代码都仅包含在一个头文件(tdd.h)中。也就是说,CxxTest框架仅需要一个现代C++编译器就可以运行测试程序,甚至在必要时,可以通过它捕获异常和使用GUI展示。
CxxTest作为一种轻量级的测试驱动开发框架,其优点在于使用简单。我们通常使用已有的控制台测试启动程序来调用我们自己编写的测试用DLL。之后,该测试程序就会对此DLL的各个注册方法进行测试,并且最终输出结果。
整个测试的过程大致可以分成两个部分,第一部分是测试类的选取,而第二部分则是具体的对我们所定义的方法的测试。图1表示的是在测试类级别上的选择,而图2则是图1中带有“*”标记步骤的具体拓展,表现了CxxTest测试驱动开发框架如何逐个调用测试类中的各个测试方法。……