我有自定义的QWidgets,其中所有绘制都是手动完成的(fillRect,drawRect,drawText,drawPixmap ..)。多达120个属性会影响绘画的内容,闪烁的方式等等。旧版意大利面条代码。
当我更改某些内容时,我想先测试一下旧功能。有没有建议的方法如何用单元测试覆盖QWidget::paintEvent(QPaintEvent* event)
?我是否必须模拟QPainter,或者有没有办法检查paintEvent输出?
如何用测试覆盖paintEvetnt?
答案 0 :(得分:0)
最后存储和比较图像:
auto configuredImage = widgetUnderTest->grab().toImage();
QImage sampleImage;
sampleImage.load("src/Images/configuredImage.png");
QCOMPARE(configuredImage, sampleImage);