Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Test Driven Development - Romano Adler-

Ähnliche Präsentationen


Präsentation zum Thema: "Test Driven Development - Romano Adler-"—  Präsentation transkript:

1 Test Driven Development - Romano Adler- http://www.romano-adler.de

2 Warum sollte man nicht testen? Wir machen viel Prototyping…. Wir haben keine Zeit um noch Tests zu schreiben… Unsere Anwendung lässt sich nicht testen… Durch manuelles Testen werden alle Fehler gefunden… … Jaaaa, morgen müssen wir Unit-Tests einführen!

3 Agenda Unit-Testing mit Visual Studio Test Driven Development-Paradigmen Model View Presenter-Pattern Mock Frameworks Behavior Verification

4 Unit-Testing mit Visual Studio

5 Unit Testing kleinste Einheit in OO = Methode Test beschreibt einen Vertrag erfordert gute Kapselung in.NET: NUnit / Visual Studio 2005 / 2008 Method to test Test Asserts

6 Visual Studio Test Attributes [TestClass()] [TestMethod()] [ClassInitialize()] / [ClassCleanup()] [AssemblyInitialize()] / [AssemblyCleanup()] [TestInitialize()] / [TestCleanup()] [Priority()] [Ignore()] [Owner()] [Description()] [DataSource()] [ExpectedException()]

7 DEMO

8 Unit-Testing Vorteile Grundlage für Refactoring Fehler durch Änderungen können entdeckt werden (Regression Testing) erleichtert die Integration (Integration Testing) bringt bessere Architektur z.B. Trennung zwischen Schnittstelle und Implementierung Dokumentation

9 Unit-Testing Best Practices Test vor /während dem Produktiv-Code entwickeln Isolation nur Methoden testen keine Abhängigkeiten zwischen Tests eine Test-Klasse pro Produktiv-Klasse eine Methode pro Test-Fall Mock-Objekte um Interfaces zu testen

10 Visual Studio Testing Create Private Accessors Code Coverage Build Server per Check-In Nightly Build Continuous Integration

11 Visual Studio Testing Load Tests

12 Visual Studio Testing Web Tests

13 Visual Studio Testing UI Tests TestAutomationFX MVP-Pattern

14 Team Systems - Überblick Version Control Work Item Tracking Build Automation Team Communications Reporting

15 Test Driven Development- Paradigmen

16 Der evolutonäre Entwurf Entwicklung des Tests (dieser muss fehlschlagen) Entwicklung der Funktion, sodass der Test (und alle anderen) funktioniert Refactoring Bis dem Entwickler keine Tests mehr einfallen

17 Test Driven Development Testen anhand der Anforderungen erst Test schreiben kurze Iterationen: soviel Code wie nötig erstes Ziel: alle Tests müssen durchlaufen hohe Codeabdeckung

18 DEMO

19 Model View Presenter Design Pattern

20 Warum Model View Presenter Design Pattern? Darstellung Eingabe …… Logik Logik? Backend Client

21 Warum Model View Presenter Design Pattern? Logik Backend Rich-Client Web-Client ViewPresenterModel

22 Model View Presenter Design Pattern IView View PresenterModel

23 Model View Presenter Design Pattern IView: Abstraktion einer View definierte Methoden, Properties und Events für den Presenter View: konkrete View sollte kaum Logik enthalten wird nicht getestet

24 Model View Presenter Design Pattern Presenter implementiert client-seitige Logik Model stellt dem Client Daten und Dienste zur Verfügung

25 Mock Frameworks

26 Mock Object simuliert das Verhalten eines Objekts wird benutzt, um das Verhalten eines anderen Objektes zu simulieren benutzt dasselbe Interface, wie das richtige Objekt

27 Rhino Mocks Ayende Rahien (Oren Eini) http://www.ayende.com/ http://www.ayende.com/ MockRepository mockery = new MockRepository (); IMockObject mock = mockery.CreateMock (); using ( mockery.Record () ) { SetupResult.For (mock.GetTest()).Return (Hello"); …

28 Rhino Mocks Mock Container: MockRepository Strict Mock: CreateMock () None Strict Mock: DynamicMock () Partial Mock: PartialMock () Stub: Stub () Verhalten aufzeichnen: Record() Verhalten definieren: SetupResult.For() Erwartungen definieren: Expect.On () Verhalten überprüfen: Playback()

29 DEMO

30 Behavior Verification

31 prüft das Verhalten einer Methode Method to test Test Asserts Method to test Test klassisches Unit-Testing Behavior Verification

32 DEMO

33 Referenzen A Unit Testing Walkthrough with Visual Studio Team Test: http://msdn.microsoft.com/en-us/library/ms379625(VS.80).aspx http://msdn.microsoft.com/en-us/library/ms379625(VS.80).aspx Visual Studio Team System 2008 Team Foundation Server: http://msdn.microsoft.com/en-us/tfs2008/default.aspx http://msdn.microsoft.com/en-us/tfs2008/default.aspx Model View Presenter - Jean-Paul Boodhoo: http://msdn.microsoft.com/en-us/magazine/cc188690.aspx http://msdn.microsoft.com/en-us/magazine/cc188690.aspx dnrTV MVP: http://www.dnrtv.com/default.aspx?showNum=14http://www.dnrtv.com/default.aspx?showNum=14 ARCast.TV - Presenter First Pattern | ARCast.TV | Channel 9: http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Presenter- First-Pattern-Part-1/ http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Presenter- First-Pattern-Part-1/ The Humble Dialog Box - Michael Feathers: http://www.objectmentor.com/resources/articles/TheHumbleDialogBo x.pdf http://www.objectmentor.com/resources/articles/TheHumbleDialogBo x.pdf Rhino Mocks: http://www.ayende.comhttp://www.ayende.com xUnit-Patterns: http://xunitpatterns.com/http://xunitpatterns.com/

34 Fragen


Herunterladen ppt "Test Driven Development - Romano Adler-"

Ähnliche Präsentationen


Google-Anzeigen