unittest i moss
DESCRIPTION
Unittest i MOSS. SPBG. Test driven development Unit test frameworks MOSS TDD Mocking Design patterns. Test driven development. - PowerPoint PPT PresentationTRANSCRIPT
SPBG
Test driven development Unit test frameworks MOSS TDD Mocking Design patterns
Test-driven development (TDD) is a software development technique that uses short development iterations based on pre-written test cases that define desired improvements or new functions. Each iteration produces code necessary to pass that iteration's tests. Finally, the programmer or team refactors the code to accommodate changes. A key TDD concept is that preparing tests before coding facilitates rapid feedback changes.
Mind set Test før implementation Unit test vs Integrations test
Test af den udviklede kode Ikke test af ”andres kode” Flere test til den samme kode Test for at finde fejl Test for se fejl håndtering
Fordele: Nemt at overdrage til anden udvikler Fejl bliver ofte fundet før det er i drift Giver en ”kontrakt” Kvalitets sikring
Ulemper: Meget mere kode Kan give større arbejde ved refaktorering Svært at omstille sig til
Udvikling af en webpart i MOSS. Webpart skal vise vejret i et givet land Landet er default givet af web site
lokalisering Vejr data hentes fra en webservice Præsentationen skal bruge et specifikt xsl Det skal være muligt at angive et andet
land end default
Visual Studio Unit test (2008 / team system)
Nunit - http://www.nunit.org Udfordring:
Data skal klargøres til test, ikke ens miljøer Bruger context er svær at teste. CurrentWeb SharePoints klasser
Er Sealed Ingen interfaces Intern construnctors Collections har ingen add metoder
Simulering af objekter Eliminere eksterne afhængigheder i test Eliminere Interne afhængigheder
Farme works: Nmock - http://www.nmock.org
RhinoMock - http://ayende.com/projects/rhino-mocks.aspx
TypeMock - http://www.typemock.com
Type mock AAA Arrange Act Assert
To syntakser Isolator Pattern Natural Mocks™
Opsætning af forventninger
Isolator
Natural
Udførsel af kald
Verificering af kørsel
Design patterns kan give mere testbar kode
Eksempler Dependency injection Factory pattern / Command pattern Model–view–controller
Frigør koden fra oprettelse af eksterne afhænigheder
Instantiering af eksterne afhæigheder sker uden for metoden eller klassen
Indsætter en central mekanisme til oprettelse af objekter
Factory eller Command klasse kan konfigureres til at kontrollere test
Opsplitning af ansvar for visning af data, Model indeholder data funktioner Viewer kontrollere visning Controller reagere på events og binder
model og viewer sammen Eksempel: Webpart der bruger XSLT XSLT er Viewer XML data er model Webpart cs. er controller
MS framework se http://www.asp.net/mvc/