Я хотел бы протестировать асинхронный запрос к веб-серверу. Для этой цели я создаю простой модульный тест, чтобы быстро проверить несколько строк кода:
void AsynchronousCall::testGet()
{
QNetworkAccessManager *nam = new QNetworkAccessManager(this);
QUrl url("http://myownhttpserver.org");
QNetworkRequest req(url);
this->connect(nam, SIGNAL(finished(QNetworkReply*)), this, SLOT(reqFinished(QNetworkReply *)));
QNetworkReply *rep = nam->get(req);
}
void AsynchronousCall::reqFinished(QNetworkReply *rep)
{
qDebug() << rep->readAll();
qDebug() << "finshed";
}
Проблема в том, что reqFinished() никогда не достигается. Если бы у меня был простой QEventLoop и loop.exec() сразу после nam->get(req); запрос выполняется.
Любой намек? Должен ли я использовать loop.exec() в каждом моем модульном тесте?