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ă, Iași

enea.gabriel@gmail.com

Twitter: @dotnet18

Blog: http://gabrielenea.blogspot.com
Cât 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
Cât 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 toții ne dorim … ?
Clienți fericiți!
Dar, majoritatea sunt …
Clienți nefericiți!
Ce facem?
Ce ar trebui?
Ce schimbăm?
De unde pornim?
Unde ajungem?
Cum testezi un avion?
Testare componente
Cât de important e arhitectura
software în testarea automată?
Important: cerințele aplicației,
domeniul de execuție, …
Domain Driven Design
Decuplare + Interfețe!
DDD și MVC
Core of TDD
TDD
Test Driven Development is not about testing!
TDD = tehnică de dezvoltare software

Pași în TDD:
Scrie un test care eșuează
Scrie suficient cod astfel încât testul să treacă
Rearanjează codul sursă (refactoring)
Repetă procesul pentru părți mici de cod
ASP.NET MVC
Separare clară între logica UI, business și
intrările utilizatorului

Extensibil
 Arhitectură bazată pe interfeţe
 Puţine clase nemoştenibile

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 aplicației

Independent de factori externi (baze de date,


view-uri, platformă, …)

Testare reguli de validare


Testarea rutelor
Pași:
 Se utilizează un framework de mocking (MoQ)
 Se simulează o cerere HTTP
 Se verifică valoarea parametrilor din colecția
RouteData
Demo 1 – Testare rute
Testarea controller-elor
De să le testezi?

Controllere-le conțin logică care ține de


comunicarea dintre aplicație ș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 poziționarea


elementelor în cadrul interfeței utilizator

Unelte de test:
Selenium (addon Firefox),
Visual Studio for Testers
Testare Html Helpers

Validează răspunsul (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 reținut
Context
Domeniu
Cerințe
Arhitectură + Testare
Dezvoltare + Testare
Testare
Testare …

Client fericit!
Unit testing
+ software development
+ ASP.NET MVC

Întrebări?
Unit testing
+ software development
+ ASP.NET MVC
Gabriel Enea Mulțumesc!
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

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