Ho letto la maggior parte delle domande relative a SO (here, here e there). L'ultima domanda propone quattro alternative per creare codice che chiama i metodi statici unitabili alla prova. Voglio chiedere del mio caso particolare: abbiamo un progetto "business logic layer" o "rules" che contiene 45 classi statiche (nessuno stato, solo metodi statici). Inoltre, non sono facilmente testabili da soli: la maggior parte di essi accede al database e al file system. Non è poi così male: per accedere al database, usano l'istanza unica di alcune classi Mapper (tutti i Mapper sono Singletons). Ogni volta che provo a testare qualcosa, mi imbatto in questo muro. Il problema più grande è che questo è un codice molto, molto importante, e le modifiche dovrebbero essere pianificate con molta attenzione. La mia domanda: come devo fare per rendere questa unità più testabile? Devo scrivere 45 interfacce e usare l'iniezione di dipendenza? Anche così, come faccio a mozzare/schernire i mappatori?Codice di test unitario che chiama metodi statici
PS: Ho letto Michael Feathers' 'Lavorare con il codice legacy', in modo da riferimenti diretti sono i benvenuti (altri libri troppo :)
Edit: Dal momento che alcune persone hanno detto le soluzioni potrebbero essere dipendente dalla piattaforma , Sto lavorando su .NET (C# e alcuni VB.NET)
Suoni ok. Questo si sarebbe preoccupato di rendere testabili i metodi statici, ma che dire del codice che li chiama? In un'altra nota, solo curioso ... È "GI" una sorta di firma, o è un acronimo? (Vengo dall'Argentina) –
Gl == Buona fortuna :). Per il codice che usa il Mapper devi adattarlo per usare l'interfaccia di fabbrica invece di getInstance di singleton. – AlexTheo