Sunteți pe pagina 1din 30

Unit testing

+ software development
+ ASP.NET MVC
Gabriel Enea
Senior Software Developer Maxcode.ro
Co-founder: joobs.ro primul portal de joburi IT

26 mai 2010, Facultatea de Informatic, Iai


enea.gabriel@gmail.com
Twitter: @dotnet18
Blog: http://gabrielenea.blogspot.com

Ct de important e?
Buna ziua,
Avem placerea sa va anuntam ca ati fost promovat la
statutul de client Distributie - discount 0.
Achizitiile dvs. la PC Garage au depasit o valoare de 0,00
RON, cumuland un numar de peste 0 de comenzi.
Toate cele bune,
Echipa PC Garage
http://www.pcgarage.ro

Ct de important e testarea?
Inca un mail de la Garaj, de data asta cu scuze :)
Salut Gabriel,
Ne cerem scuze pentru email-ul primit de la noi mai devreme in care erai anuntat ca faci parte
dintr-un grup de clienti inexistent.
A fost evident o eroare din partea noastra si s-a intamplat din cauza testarii insuficiente a unei
facilitati.
Am corectat eroarea si promitem sa nu se mai intample.
Daca nu ai primit mail-ul, inseamna ca a ajuns prin folderele de Trash sau Junk si bine a facut.

Te rugam din nou sa ne ierti pentru orice inconvenienta si iti oferim un voucher de 10 lei pe care-l
poti folosi la cumpararea oricarui produs: 3YEBC3I9
Un weekend placut,
Echipa PC Garage

Cu toii ne dorim ?

Clieni fericii!

Dar, majoritatea sunt

Clieni nefericii!

Ce facem?
Ce ar trebui?
Ce schimbm?
De unde pornim?
Unde ajungem?

Cum testezi un avion?

Testare componente

Ct de important e arhitectura
software n testarea automat?

Important: cerinele aplicaiei,


domeniul de execuie,

Domain Driven Design

Decuplare + Interfee!

DDD i MVC

Core of TDD

TDD
Test Driven Development is not about testing!
TDD = tehnic de dezvoltare software
Pai n TDD:
Scrie un test care eueaz
Scrie suficient cod astfel nct testul s treac
Rearanjeaz codul surs (refactoring)
Repet procesul pentru pri mici de cod

ASP.NET MVC
Separare clar ntre logica UI, business i
intrrile utilizatorului
Extensibil
Arhitectur bazat pe interfee
Puine clase nemotenibile

User/SEO Friendly URLs

ASP.NET MVC i TDD


Testabil 100%
Regul:
Niciodat s nu testezi codul care nu e scris de tine!
(de ex. cel impus de framework/librarie)

Testare Model/Domeniu
Valideaz implementarea corect a
domeniului aplicaiei
Independent de factori externi (baze de date,
view-uri, platform, )
Testare reguli de validare

Testarea rutelor
Pai:
Se utilizeaz un framework de mocking (MoQ)
Se simuleaz o cerere HTTP
Se verific valoarea parametrilor din colecia
RouteData

Demo 1 Testare rute

Testarea controller-elor
De s le testezi?
Controllere-le conin logic care ine de
comunicarea dintre aplicaie i utilizator
(flow).

Demo 2 Testare controller

Testare View-uri?
Nu are sens dac UI-ul se modific des!
Are sens dac testele nu in de poziionarea
elementelor n cadrul interfeei utilizator
Unelte de test:
Selenium (addon Firefox),
Visual Studio for Testers

Testare Html Helpers


Valideaz rspunsul (cod HTML, ) unui
Html Helper (ex. Html.TextBox,
Html.CheckBox, ..)
Presupune mocking peste View-uri
(ViewContext)

Demo 3 Testare Html Helpers


Testare metod Html.TextBox

De reinut
Context
Domeniu
Cerine
Arhitectur + Testare
Dezvoltare + Testare
Testare
Testare

Client fericit!

Unit testing
+ software development
+ ASP.NET MVC

ntrebri?

Unit testing
+ software development
+ ASP.NET MVC
Gabriel Enea
Senior Software Developer Maxcode.ro
Co-founder: joobs.ro primul portal de joburi IT

enea.gabriel@gmail.com
Twitter: @dotnet18
Blog: http://gabrielenea.blogspot.com

Mulumesc!

S-ar putea să vă placă și