Il test dei file di output è sempre una cosa difficile, lo stesso vale per testare il download di file dal web o l'output sulla console.
Una domanda che dovresti porci è: "Fino a che punto posso testare fino a quando non ho bisogno del file?" La maggior parte della logica può essere testata usando un qualche tipo di codice sostitutivo o un semplice generatore di file di testo.
Osservando la tua domanda puoi generare più file, quindi suppongo che tu abbia già una sorta di separazione tra il codice che fornisce i dati e il codice che sta generando il file. Quindi la mia risposta sarà basata sul presupposto che esiste un tipo di fabbrica che genera il file vero e proprio.
Una domanda che ti puoi porre è: quanto è complessa la fabbrica, contiene molta logica extra o chiama solo funzioni da un'altra libreria che sta creando i file per te?
Se la fabbrica ha molta logica, è la stessa per tutti i tipi di uscite o diversa per ogni uscita? Quando è lo stesso, dovresti pensare di rifarlo dalla fabbrica o aggiungere un formato facile da testare (come un file di testo).
Quando chiama solo una libreria, devi testarla automaticamente? non stai andando a testare la libreria che stai usando?
Quindi in pratica testerei il più possibile che non mi imponga di creare un file complesso. I file di testo normale, inclusi html e json, sono relativamente facili da testare perché sono leggibili e confrontabili.
Per testare le uscite binarie, probabilmente creerò un semplice file di esempio da testare e scriverò un test che usa la fabbrica per generare lo stesso file e testare il file a livello di byte. Generato con gli stessi parametri dovrebbe generare lo stesso file più e più volte.