Anche quest’anno (esattamente come lo scorso anno nello stesso periodo) mi trovo a lavorare su un grosso progetto con una storia di più di dieci anni scritto principalmente in VB6 ma con sempre più frequenti “innesti” di codice c# utilizzato via COM.

L’anno scorso ho iniziato ad utilizzare il framework di test SimplyVbUnit e il suo compare VBMock.
E’ stata un esperienza utile perchè mi ha fatto definitivamente capire che anche in VB6 è possibile scrivere codice testabile che sfrutta i più (attualmente) apprezzati principi di design.
Il grosso limite del linguaggio è che purtroppo è necessario scrivere molto più codice (a mano) rispetto a linguaggi come Java o C#.

Un aspetto da tener ben presente è che in VB6, se si sceglie di mettere il codice di test in un progetto separato dal codice di produzione, è possibile testare solo il codice delle classi.
Dato che, per il progetto VB6 tipico, almeno secondo la mia esperienza, l’uso delle classi non è molto diffuso (codice nelle form e nei moduli) non sempre è possibile scrivere test senza pesanti (e costosi) refactoring.
Fortunatamente quest’anno ho il vantaggio di dover lavorare su libreria che sfruttano in maniera abbastanza estesa le classi vb.

Sto apprezzando la possibilità di scrivere test (sullo stato) soprattutto quando ho a che fare con oggetti istanziati in late bound (con CreateObject, quindi): questo mi permette di documentare come questi vanno utilizzati in maniera chiara.

Chiaramente l’ultima affermazione potrà essere verificata solo quando, fra un po’ di tempo, ci rimetteremo le mani su🙂