1.1 单体测试简介
软件开发一般流程包括:需求理解—>概要设计—>详细设计—>编码—>单体测试—>结合测试。单体测试(Uint Test)是软件开发阶段的一个基本环节,一般由开发者完成。那么,什么是单体测试?顾名思义就是对单体进行测试。所谓单体,可以理解为一个函数,而测试就是验证此函数是否能达到预期结果。所以,简单说,单体测试就是测试函数是否实现了预期结果。
目前,单体测试框架有很多。比如,应用于C/C++的Google Test,CppTest;应用于Java的JUint。它们的框架函数都很丰富,可以从不同角度对函数测试,能满足大多数项目的需求。但是,如果项目是基于Qt开发的,再搭建一套Google Test环境可能会很麻烦[1]。而Qt本身也提供了一个单体测试框架—-Qt Test,应用它更方便、快捷。
1.2 Qt Test使用方法
如何应用Qt Test对一个函数进行测试?下面以一个简单的Qt Console应用程序来进行说明。编程环境为Windwos下Qt Creator,基于Qt 5.5.1。
1.2.1 测试需求
有这样一个代表书籍的类Quote
[2],下面类的定义与原书中稍有不同。它有两个属性:编号和单价,两个方法:编号和总价。net_price()
前的virtual
关键字先不用关注。现在要测试net_price()
是否实现了通过单价和数量计算总价的功能。
class Quote{
public:
Quote(const string& bookNo, double salePrice):
m_bookNo(bookNo)
,m_salePrice(salePrice)
{}