Post on 09-Aug-2020
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 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
Mulțumesc!