La maggior parte delle applicazioni richiede alcune configurazioni esterne; puoi nasconderlo rendendolo dipendente da variabili magiche o salvandolo in una posizione interna, ma ciò non eliminerà la necessità. L'obiettivo è riconoscere ciò che dovrebbe essere esterno e ciò che può essere interno. Solo le parti interne possono essere testate.
Un'applicazione non dovrebbe considerare attendibile un file di configurazione esterno. Dovrebbe controllare la correttezza e riportare errori. Se non è possibile per l'applicazione controllare il file di configurazione, probabilmente stai facendo troppo con esso. Se il file di configurazione cambia il comportamento dell'applicazione, non dovrebbe essere esterno a mio parere.
Ad esempio, un nome utente / password del database possono essere facilmente verificati dall'applicazione cercando di connettersi al database. Se questo non riesce, può segnalarlo, e ovviamente non è un bug nel codice dell'applicazione. Allo stesso modo, per un percorso di file è possibile verificare l'esistenza e i diritti di accesso.
Ora, se dovessi inserire query SQL nel file di configurazione, l'applicazione non può facilmente verificare la correttezza di tali query. Lo stesso vale per una specifica di iniezione a dipendenza completa (un file XML Java-Spring). Quelli non dovrebbero essere in file di configurazione esterni.
Ma se la configurazione specificata descrive qualcosa di esterno e puoi verificarne rapidamente la correttezza, non penso che ci sia qualcosa di sbagliato nei file di configurazione esterni.
Modifica: assicurati anche che i tuoi rapporti di errore mostrino quale file di configurazione viene utilizzato. Niente è più frustrante che scoprire che stavi guardando il file sbagliato dopo ore di tentativi di scoprire cosa c'è che non va.