2. Agenda
Was ist Test-Driven Development?
Testing SharePoint
Microsoft Fakes Mocking Framework
SharePoint Emulators
3. Was ist TDD?
Testgetriebene Entwicklung (engl. test
first development oder test-driven
development (TDD)) ist eine Methode, die
häufig bei der agilen Entwicklung von
Computerprogrammen eingesetzt wird.
Bei der testgetriebenen Entwicklung
erstellt der Programmierer Software-Tests
konsequent vor den zu testenden
Komponenten.
Quelle: http://de.wikipedia.org/wiki/Testgetriebene_Entwicklung
4. TDD ist “interpretierbar”
Test-First Methode
Als Teil eines agilen Softwareentwicklungsprozesses
Legacy Code Testing
Verhalten von Quellcode überprüfen
5. Warum TDD?
Steigerung der Codequalität
Bessere Verständnis des Codes
Schnelles Finden von Fehlern
Pünktlich Feierabend
Hohe Flexibilität
7. Agenda
Was ist Test-Driven Development?
Testing SharePoint
Microsoft Fakes Mocking Framework
SharePoint Emulators
8. SharePoint testen… aber wie?
Quelle: http://blog.mercedes-benz-passion.com/2009/05/hamann-vulcano-slr-im-windkanal/
9. Was ist “testbarer“ Code?
Abstraktes und Interface-basiertes Design
Kein Konstruktoren mit Logik
Methoden standardmäßig als virtual
markieren
10. S
O
L
I
D
Single Responsibility Principle
A class should have one, and only one, reason to change.
Open Close Principle
You should be able to extend a classes behavior, without modifying it.
Liskov Substitution Principle
Derived classes must be substitutable for their base classes.
Interface Segregation Principle
Make fine grained interfaces that are client specific.
Dependency Inversion Principle
Depend on abstractions, not on concretions.
Was ist guter Code
11. Stubs und Mocks
Stubs
• Einfache Objekte
z.B. Liste oder nur Text
Mocks
• Objekte die eine
Berechnung vornehmen
• Prüfen ob eine Funktion
aufgerufen wurde
12.
13. TDD vs. SharePoint
SharePoint bietet nur wenige Interfaces
und abstrakte Klassen
In SharePoint werden viele statische und
nicht-virtuelle Funktionen und Eigen-
schaften benutzt
• SPContext.Current
• SPFieldCollection.GetFieldByInternalName
14. Agenda
Was ist Test-Driven Development?
Testing SharePoint
Microsoft Fakes Mocking Framework
SharePoint Emulators
15. Fakes (aka Moles)
Build-In Visual Studio 2012
Ab Visual Studio Premium Update 2
Faken von sealed, static Methoden und
Eigenschaften
Benutzen von bekannten Funktionen
Anonymous Delegates und Lambda Expressions
SharePoint Support
26. Zusammenfassung
Faken von allen Intanzen eines Objekts
während eines Tests
Benutzen von Stubs und Shims
zusammen
In die Schreibweise von Stubs und Shims
muss man sich einarbeiten
27. Agenda
Was ist Test-Driven Development?
Testing SharePoint
Microsoft Fakes Mocking Framework
SharePoint Emulators
33. Literatur und Links
The Art of Unit Testing
Buch, Roy Osherove
Fakes in der MSDN
http://msdn.microsoft.com/en-us/library/hh549175.aspx
Visual Studio Test Tooling Guide
http://vsartesttoolingguide.codeplex.com
Clean Code
Buch, Robert C. Martin
Bei TDD wird durch ein automatisiertes Stück Code überprüft ob eine oder mehrere Annahmen über eine Methode/Funktion/Klasse logisch korrekt sindTesten von Code ohne Bezug auf Abhängigkeiten wie Datenbanken oder das Dateisystem
Stub= einfacheListeodernur TextMock = ErwirdeineBerechnunggemacht; Geprüft ob eine Funktion aufgerufen wurde; Wie ein Spion