Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Ägidius Ratermann Geändert vor über 10 Jahren
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.