QTest覆盖漆法

时间:2019-05-22 07:50:25

标签: c++ qt qt5 qwidget qtestlib

我有自定义的QWidgets,其中所有绘制都是手动完成的(fillRect,drawRect,drawText,drawPixmap ..)。多达120个属性会影响绘画的内容,闪烁的方式等等。旧版意大利面条代码。

当我更改某些内容时,我想先测试一下旧功能。有没有建议的方法如何用单元测试覆盖QWidget::paintEvent(QPaintEvent* event)?我是否必须模拟QPainter,或者有没有办法检查paintEvent输出?

如何用测试覆盖paintEvetnt?

1 个答案:

答案 0 :(得分:0)

最后存储和比较图像:

auto configuredImage = widgetUnderTest->grab().toImage();
QImage sampleImage;      
sampleImage.load("src/Images/configuredImage.png");
QCOMPARE(configuredImage, sampleImage);