Dopo circa un mesetto di utilizzo di tecnologia targata Microsoft volevo condividere qualche punto.
Visual Studio 2005 è un gran bell’ IDE, molto integrato, facile da usare, user-friendly e molto potente; C# d’altronde è molto simile a Java come linguazzo OO, con delle feauture molto interessanti.
La prima pecca che ho potuto notare è che non ha nessun framework integrato per fare unit test, e questo è male!! O meglio ne esiste solo una versione che integra un ambiente per i test unitari (la Team Edition).
L’inizio dello sviluppo è stato molto pittorico: molti “just click next” e poco codice a manina, e quindi non era una priorità testare unitariamente il codice prodotto dal framework .NET.
In questa ultima settimana fortunatamente avendo preso un pò il controllo degli strumenti e padroneggiando di più gli strati di codice prodotti dal magnifico “maghetto” targato M$, ho ripreso a essere io il protagonista dello sviluppo, e per ovvi motivi mi sono sentito in braghe di tela quando non potevo fare test unitari.
Quindi ho speso una giornata a cercare e valutare la configurazione migliore in Visual Studio 2005 per crearmi un ambiente adatto e confortevole per raggiungere questo obiettivo.
Sono partito da NUnit che è il porting di JUnit per .NET. Bisogna scaricarsi le librerie e poi creare una solution che faccia riferimento a nunit.framework.
Il core di NUnit è molto interessante e assomiglia a quello di JUnit 4 in cui i Test sono evidenziati tramite le assertion; qua invece che le assertion si usano altre strutture che consentono di decorare con dei metadati le classi di Test:
[TestFixture]
public class BankAccountTest[SetUp]
public void Init()
{
bankAccount = new BankAccount(“Mazi”);
}[Test]
public void InitTest()
{
Assert.AreEqual(0.0, bankAccount.Balance);
}
Come si può vedere si usa la direttiva TextFixture per definire una classe di Test, e altri attributi specifici per Test, SetUp, TearDown ecc. ecc.
NUnit non è integrato in Visual Studio, e quindi una volta creata la solution di test (la dll o l’exe) bisogna usare la gui di NUnit standalone per eseguire i test: questo può risultare scomodo per chi è abituato a un ambiente orientato ai test unitare come Eclipse.
Purtroppo nel modo M$ ci sono, oltre a NUnit, altri vari framework di unit test:
Ognuno ha i suoi vantaggi, e ognuno dice di essere il migliore
Per ora proverò l’accoppiata NUnit e TestDriven.Net, diciamo che il desiderata sarebbe avere test unitari e un plugin per Visual Studio integrato in modo da non dover usare un programma esterno per testare, ma fare tasto destro, run test
Mazi
Filed under: .Net, C#, Develop | 5 Comments »






