Streng genommen ist es kein Unittest, wenn I/O verwendet wird. Es ist irgendwas. Und es testet. Aber eben kein Unittest. Einfach deshalb, weil das Verändern der Dateien deinen Test zerschießt.
Der UnitTest kann gern IO verwenden. Für die zu testende Klasse sollten diese Operationen gemockt werden.
Was das Verändern von Testdaten betrifft: Das zerschießt jeden Test - unabhängig davon, ob das jetzt einkompilierte Dateien, Resourcen oder im Code definierte Konstanten sind.