Il presente articolo è stato tradotto automaticamente.

Nota del redattore

Introduzione del codice asincrono nel test

Michael Desmond

Michael DesmondGli articoli di piombo in questo numero di MSDN Magazine si concentrano su un tema condiviso: Gestire il compito di unit test progetti di codice asincrono.

Stephen Cleary ha scritto estesamente circa async sviluppo negli ultimi anni qui a MSDN Magazine e il suo articolo, "Unit Testing codice asincrono," Esplora come unit test devono essere adattati per dimostrare i progetti async. Egli esamina alcune delle attuali unità Framework di test — come MSTest, NUnit e xUnit — e propone strategie per garantire i migliori risultati. Sven Grand prosegue con il secondo articolo della caratteristica in questo numero, "Unit Testing codice asincrono: Tre soluzioni per prove meglio." Egli propone tre soluzioni per migliorare il design del codice asincrono collaudato con l'obiettivo di eliminare unit test che sono lento e fragile.

Naturalmente, la programmazione asincrona è un argomento di preoccupazione in corso qui a MSDN Magazine. Torna nel numero di ottobre 2011, esperti Microsoft Eric Lippert, Mads Torgersen e Stephen Toub ha scritto un trifecta di caratteristiche async-tema che prevedeva la nuova async e attendono Parole chiavi in Visual Studio 2012 (msdn.microsoft.com/magazine/hh463583). Da allora, noi abbiamo pubblicato articoli quasi una dozzina focalizzati sullo sviluppo di async. Uno di quelli — articolo di marzo 2013 di Cleary, "Best Practices in programmazione asincrona" — è tra gli articoli più letti negli ultimi due anni (msdn.microsoft.com/magazine/jj991977).

Il punto è, async è un argomento caldo — e per buon motivo. Come Grand scrive nel suo articolo di questo mese, "se per parallelismo basato su CPU o concorrenza basata su IO, gli sviluppatori stanno impiegando asincronia per aiutare a sfruttare al meglio le risorse disponibili e, infine, fare di più con meno. Le applicazioni client più reattive e più scalabile applicazioni server sono tutti a portata di mano."

I benefici dello sviluppo async sono chiari — specialmente in un mondo sempre più guidato dalla nube — ma async programmazione rappresenta una sfida per gli sviluppatori che sono nuovi alla pratica. Come Cleary dice in un'intervista: "Un sacco di async tutorial spiegano come utilizzare async/attendono, ma non preparano gli sviluppatori per la natura virale di async. Così quando si inizia scrivendo un metodo singolo async e questa roba async/attendono continua a crescere attraverso il loro codice, gli avvisi vanno e cercano di verifica che questa è effettivamente corretta."

Ecco perché il numero di MSDN Magazine di questo mese conduce fuori con un paio di articoli focalizzati su unit test codice asincrono. Test è una di quelle cose che possono avere spinto al lato quando timelines ottenere stretto. Ancora, un regime rigoroso e disciplinato il test è fondamentale per ottenere una qualità costante del codice. Le due caratteristiche di questo mese aiutano gli sviluppatori a garantire il che loro sviluppo async avviene in un ambiente ben strutturato e supportato.

"La maggior parte delle sfide per gli unit test codice asincrono sono lo stesso di unit test codice sincrono. Codice è più facile per verificare quando è stato progettato bene,"dice Cleary. "Per codice asincrono, un approccio più funzionale può essere utile — in altre parole, il ritorno risulta piuttosto che i valori delle impostazioni come effetti collaterali."

Grand dice che è importante concentrarsi test sforzi, come gli sviluppatori possono finire di test del codice di libreria che viene chiamato da codice personalizzato. "Non devi scrivere un test per assicurarsi che Microsoft Task.Run funziona davvero. Credimi, funziona. Grand test ottenere più semplice e più pulito se si riesce a testare solo il tuo codice,"dice.

È il tuo dev negozio scrittura di codice asincrono e come hanno adattato il test per accoglierlo? E-mail me a mmeditor@microsoft.com.


Michael Desmond è il caporedattore di MSDN Magazine.