Unit Test对于大型软件项目是非常重要的,能够帮助developer快速发现、定位和解决问题。基于现有的Unit Test框架来构建单元测试是事半功倍的事情,比如Google Test或QTest等。由于我们的软件是基于Qt GUI的,考虑到同一框架的兼容、匹配性更高,因此我们这里选择使用QTest框架来构建Unit test.
目录结构和CMake配置
以unit_test1,unit_test2,...来表示添加的Unit test的名称。
JCad
test
unit_test1
CMakeLists.txt
unit_test1.cpp
unit_test2
...
...
另外,不要忘记在JCad/CMakeLists.txt添加
add_subdirectory(test/unit_test1)
add_subdirectory(test/unit_test2)
...
构建第一个Unit test
在此之前,我们已经封装了几何图形j-geometry模块和视图j-view模块,为了验证这两个模块的正确性,我们构建一个Unit test来测试是否可以正确的绘制出图形到视图中。
为了便于测试,我们为JView类添加几个接口,用于为QPainter设置画笔以及获取绘制后的缓存图像。
// j-view.h
/// getter
const QImage& GetBuffer();
/// setter
void SetPen(const QPen& pen);
// j-view.cpp
const QImage& JView::GetBuffer()