18
SPBG

Unittest i MOSS

  • Upload
    vidor

  • View
    32

  • Download
    0

Embed Size (px)

DESCRIPTION

Unittest i MOSS. SPBG. Test driven development Unit test frameworks MOSS TDD Mocking Design patterns. Test driven development. - PowerPoint PPT Presentation

Citation preview

Page 1: Unittest i MOSS

SPBG

Page 2: Unittest i MOSS

Test driven development Unit test frameworks MOSS TDD Mocking Design patterns

Page 3: Unittest i MOSS

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.

Page 4: Unittest i MOSS

Mind set Test før implementation Unit test vs Integrations test

Page 5: Unittest i MOSS

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

Page 6: Unittest i MOSS

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

Page 7: Unittest i MOSS

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

Page 8: Unittest i MOSS

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

Page 9: Unittest i MOSS

Simulering af objekter Eliminere eksterne afhængigheder i test Eliminere Interne afhængigheder

Page 10: Unittest i MOSS

Farme works: Nmock - http://www.nmock.org

RhinoMock - http://ayende.com/projects/rhino-mocks.aspx

TypeMock - http://www.typemock.com

Page 11: Unittest i MOSS

Type mock AAA Arrange Act Assert

To syntakser Isolator Pattern Natural Mocks™

Page 12: Unittest i MOSS

Opsætning af forventninger

Isolator

Natural

Page 13: Unittest i MOSS

Udførsel af kald

Page 14: Unittest i MOSS

Verificering af kørsel

Page 15: Unittest i MOSS

Design patterns kan give mere testbar kode

Eksempler Dependency injection Factory pattern / Command pattern Model–view–controller

Page 16: Unittest i MOSS

Frigør koden fra oprettelse af eksterne afhænigheder

Instantiering af eksterne afhæigheder sker uden for metoden eller klassen

Page 17: Unittest i MOSS

Indsætter en central mekanisme til oprettelse af objekter

Factory eller Command klasse kan konfigureres til at kontrollere test

Page 18: Unittest i MOSS

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/