Ho appena finito il libro di Michael Feathers Working Effectively with Legacy Code. È stato un ottimo libro su come creare efficacemente cuciture di prova e sfruttarle per ottenere il codice esistente sotto test.Cuciture di collegamento in .NET
Una delle tecniche di cui parlava era l'uso di "cuciture di collegamento". Fondamentalmente l'idea era che se avessi un codice che dipendesse da un'altra libreria potresti usare il linker per inserire una libreria diversa per i test piuttosto che per la produzione. Ciò consentirebbe di percepire condizioni di test attraverso una libreria fittizia, o evitare di chiamare in librerie con effetti reali (database, e-mail, ecc.)
L'esempio che ha fornito era in C++. Sono curioso di sapere se questa tecnica (o qualcosa di simile) è possibile in .NET/C#?
Si noti che questa dovrebbe essere l'ultima risorsa quando tutto il resto fallisce. Se è abusato, dopo un certo punto si può perdere traccia di quale libreria si sta utilizzando dove, e questo può portare a bug sottili sia nei test che nella produzione. –
Oh sono assolutamente d'accordo. E TBH non sono sicuro che lo userei mai. Sono più curioso di sapere se è addirittura possibile sullo stack .NET. – RationalGeek