Spying on your application with QSignalSpy
The last part we will cover in the Qt Test framework is the ability to spy on signals with QSignalSpy
. This class allows you to do introspection of the emitted signal of any QObject
.
Let's see it in action with SoundEffectWidget
. We will test that when the SoundEffectWidget::play()
function is called, the soundPlayed
signal is emitted with the correct soundId
parameter.
Here is the playSound()
function of TestGui
:
#include <QTest> #include "MainWindow.h" // In TestGui.h class TestGui : public QObject { ... void controlButtonState(); void playSound(); ... }; // In TestGui.cpp #include <QPushButton> #include <QtTest/QtTest> #include "SoundEffectWidget.h" ... void TestGui::playSound() { SoundEffectWidget widget; QSignalSpy spy(&widget, &SoundEffectWidget::soundPlayed); widget.setId(2); widget.play(); QCOMPARE(spy...