Зачем тесту временный каталог
Тест, который пишет в постоянный каталог пользователя, зависит от состояния машины и может повредить реальные данные. QTemporaryDir создаёт отдельный временный каталог и удаляет его при уничтожении объекта, если включено автоудаление.
#include <QTemporaryDir>
#include <QFile>
#include <QTest>
void FileTest::writesReport()
{
QTemporaryDir dir;
QVERIFY(dir.isValid());
QFile file(dir.filePath("report.txt"));
QVERIFY(file.open(QIODevice::WriteOnly | QIODevice::Text));
QCOMPARE(file.write("ready"), qint64(5));
file.close();
QVERIFY(QFile::exists(dir.filePath("report.txt")));
}Проверяйте isValid(): создание каталога может завершиться неудачей из-за прав или нехватки места. Стройте путь через filePath(), а не склеивайте разделители вручную. Каталог существует, пока жив объект QTemporaryDir; не сохраняйте его путь для использования после завершения теста.
На Windows закройте открытые файлы до уничтожения временного каталога: занятый файл может помешать очистке. Если при ошибке теста нужно сохранить данные для диагностики, отключайте автоудаление только в таком сценарии и выводите путь в журнал.