side-effects of writeTo

It cost me quite some time to understand this code in TestJobRealModel:

    RealModel realModel;
    RealItem* realItem1 = UTest::GUI::createRealData("data1", realModel, value1);
    RealItem* realItem2 = UTest::GUI::createRealData("data2", realModel, value2);

    realItem1->updateDataFileName();
    realItem2->updateDataFileName();

    // Saving first time
    QXmlStreamWriter w;
    realModel.writeTo(&w, projectDir);
    QTest::qSleep(10);

    // Checking existence of data on disk
    QString fname1 = "./" + projectDir + "/realdata_data1_0.int.gz";
    QString fname2 = "./" + projectDir + "/realdata_data2_0.int.gz";
    EXPECT_TRUE(QFile::exists(fname1));
    EXPECT_TRUE(QFile::exists(fname2));

There is a stream w that goes nowhere but has the side effect of writing two files to projectDir (RealModel::writeTo calls RealItem::writeTo calls DataItem::writeTo calls DataItem::saveDatafield).

Can we organize this differently, or at least make it more transparent?

Altogther, RealModel::writeTo does three different things, namely writing to stream, saving Datafield%s to files, and calling dataFilesCleaner.cleanOldFiles.

Edited by Joachim Wuttke