Microsoft Pex 2010 je dodatek za razvijalsko okolje Microsoft Visual Studio 2010, ki omogoča preverjanje ter analiziranje kode v času izvajanja aplikacije. Orodje vam omogoča boljše razumevanje kode ter možnost izgradnje avtomatskih Unit testov.
Kako deluje?
Pex se avtomatsko integrira v razvijalsko okolje Microsoft Visual Studio, kjer ga lahko aktivirate preko menija na razredu ali metodi. Orodje bo sistematsko poiskalo možne napake v kodi ali unit testu ter prikazalo kakšna koda se ustvari. Prav tako nam omogoča izdelavo unit test-ov, Mb Unit testov, NUnit testov, Microsoft Unit Test-ov, parametriziranih testov ali pa direktni test metod brez izdelave dodatnega projekta za testiranje.
Ko želimo testirati določeno funkcijo, se enostavno postavimo na njo, izberemo context menu (desna miškina tipka) ter izberemo možnost Run Pex.
Ko zaženemo Pex, nam se odpre Pex okno, ki nam pove, kateri testi so se zagnali in kakšen je rezultat. Tako lahko preverimo naše delovanje brez da bi morali narediti testno metodo. Ko kliknemo 2x na izbrani rezultat, se nam pokažejo podrobnosti našega testa oziroma kaj se odzadaj zgodi. Kot rezultat imamo možnost shraniti test (kar nam ustvari nov projekt s testno kodo). Imamo pa tudi možnost pregleda naše kode v različnih pogledih (Views) –> explorer pogled, tree view, events, output, itd.
V našem primeru ustvarimo 10 oseb (razred Oseba, ki ima lastnost Ime in Priimek), kjer dodamo imenu string Ime in trenutno indeks ter priimku Priimek in trenutni indeks. Dosti enostavna CUI aplikacija.
Nad metodo UstvariTestnegaUporabnika zaženemo Pex in rezultat je podan v spodnji sliki (ustvari nam test direktno v oknu – s 2x klikom na test se nam odprejo podrobnosti, ki nam povedo, kaj se je naredilo oziroma kateri test se je izvedel). Kot rezultat lahko vidimo, kaj je Pex za nas naredil in lahko preverimo rezultat, ali je pravilen ali ne. Dokaj enostavno :)
Torej, kaj se pa zgodi, če imamo napako v kodi ali pa vržemo sami Exception?
Recimo, da ne dodajamo oseb, ki imajo indeks 0, saj oseba z indeksom 0 ne obstaja. Dodamo pogoj v našo kodo, v kolikor je vnos 0, vrže napako in obvesti uporabnika. Ker želimo stestirati naš nov pogoj, se odločimo, da zaženemo Pex ponovno.
Pex nam naredi testno metodo in nas opozori, da pri vnosu 0, pride do napake. Tako lahko pogledamo podrobnosti (dvoklik na test) in vidimo, kaj se dogaja z našo kodo. Spet, brez da bi napisali vrstico test-a. Užitno in hitro. Rečemo, da bomo poslali kolegu (saj je on delal na tej metodi) ter izberemo možnost Send to (v podrobnostih spodaj desno).
Testiranje on demand je super, vendar hočem svoj file za svoj test!!!!!
Ker smo prišli do faze, ko želimo zadevo konkretno pretestirati, imamo možnost shraniti test. Ko rečemo Save, se nam odpre okence, ki nam razloži, kaj bo Pex naredil (ustvaril bo nov projekt, naredil novo testno metodo, dodal reference, itd.). Skratka, naredil bo veliko korakov, ki bi jih morali ročno spreminjati/dodajati/oblikovati.
V sami kodi vam doda še ikonco (ampulo), katere klik vam omogoča zagnati unit teste ali pa celo direktno razhroščevati test (sicer lahko podobno zadevo dosežete z uporabo bližnjičnih tipk CTRL + R, CTRL + T).
To mi je všeč, kako naprej?
To je samo en delček funkcionalnosti, ki ga Pex podpira. Za ostale predlagam, da si pogledate na tem spletnem naslovu.
Samo opomba, Pex je na voljo za komercialno uporabo za MSDN naročnike, ostali si ga lahko za testne in akademske zadeve prenesete na tem naslovu.