SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
   
http://commons.wikimedia.org/wiki/File:Pit_crew_Hudson_Valley.JPG
Referent: David Völkel
Wie wird mein Code testbar?
http://commons.wikimedia.org/wiki/File:CarService.JPG
   
                 David Völkel
   
http://commons.wikimedia.org/wiki/File:Pit_crew_Hudson_Valley.JPG
http://commons.wikimedia.org/wiki/File:CarService.JPG
hard to test code
anti­pattern
Gute Testbarkeit
   
Überblick
* Testbarkeit
* TDD vs. Legacy
* Isolation
* Ciao „accidental complexity“!
   
Testbarkeit
http://commons.wikimedia.org/wiki/File:CarService.JPG
Kriterien
* operability
* decomposability
* observability
* controllability
   
http://commons.wikimedia.org/wiki/File:CarService.JPG
Designziel
* wenig Testaufwand
Ursprung E­Technik
* Testschnittstellen
 
Design for Testability (DfT) 
   
Test Driven Development 
vs. 
Legacy
   
write failing test
make the test 
pass
(refactor)
Test Driven Development
http://commons.wikimedia.org/wiki/File:Bluebird_land_speed_record_car_1935_rc10413.jpg
   
write failing test
make the test 
pass
(refactor)
Test Driven Development
(refactor)
http://commons.wikimedia.org/wiki/File:Bluebird_land_speed_record_car_1935_rc10413.jpg
   
write failing test
make the test 
pass
(refactor)
Test Driven Development
(refactor)
Externe Qualität
Funktional
http://commons.wikimedia.org/wiki/File:Bluebird_land_speed_record_car_1935_rc10413.jpg
   
write failing test
make the test 
pass
(refactor)
Test Driven Development
(refactor)
Externe Qualität
Funktional
Interne Qualität
=> Test Driven Design
   
* Drive Design
kontinuierlich
minimalistisch (YAGNI)
testbar <=> gutes Design
Test Driven Design
Code
Test
http://commons.wikimedia.org/wiki/File:Bluebird_land_speed_record_car_1935_rc10413.jpg
   
* Drive Design
kontinuierlich
minimalistisch (YAGNI)
testbar <=> gutes Design
* Feedback auf Design
„Listen to your tests“!
(Zitat Johansen, 2010)
Test Driven Design
Code
Test
http://commons.wikimedia.org/wiki/File:Bluebird_land_speed_record_car_1935_rc10413.jpg
   
Legacy Code
= keine Tests
schlecht testbares Design
* eigener Code
* 3rd
 Party Code (Frameworks)
http://commons.wikimedia.org/wiki/File:Kopalnia_Wieczorek_rozbite_okna_12.08.jpg?uselang=de
   
Legacy TDD
Renovierung
Doppelt schwierig
* Noch wenig KnowHow im Team
* Schwer testbarer Code
http://commons.wikimedia.org/wiki/File:Kopalnia_Wieczorek_rozbite_okna_12.08.jpg?uselang=de
http://commons.wikimedia.org/wiki/File:Bluebird_land_speed_record_car_1935_rc10413.jpg
   
Legacy TDD
Renovierung
* „Lazy“
* Fixierung mit Systemtests
* Refactoring 
* Unittests für neue Features
Nach Feathers 2004
http://commons.wikimedia.org/wiki/File:Kopalnia_Wieczorek_rozbite_okna_12.08.jpg?uselang=de
http://commons.wikimedia.org/wiki/File:Bluebird_land_speed_record_car_1935_rc10413.jpg
   
Isolation
   
Isolation
Test
Ziele
* Klarer Fokus
­ Testaufwand sinkt
­ Fehlerlokalisierung 
einfacher
* Performanz
http://commons.wikimedia.org/wiki/File:Cocks_in_separate_cages,_Thailand.jpg
   
front door
Test
* KEINE Isolation
* round trip tests
* state verification depended on components 
(DOCs)
Testling
Begriffe nach Meszaros 2007
http://commons.wikimedia.org/wiki/File:Stork_Hotel_door.jpg
   
back door
Begriffe nach Meszaros 2007
Test
„Mocks“
http://commons.wikimedia.org/wiki/File:Dummy_of_a_police_car.jpg
Unittests gegen
­ Blätter
­ „Units“ mit DOCs
   
Isolierbarkeit
Problem:
Test Doubles nicht setzbar
Refactorings
Isolierbar
Test
Test 
Doubles
   
Beispiel: Logger
   
Probleme
Observability (OUTPUT)
Controllability (INPUT) 
   
Ursachen
statische Abhängigkeiten
* Konstruktoraufrufe
* Singletons
   
Statischer Aufruf => Objekte
   
Statischer Aufruf => Objekte
Interface
* Abhängigkeiten 
expliziter
geringer (ISP)
* Semantik durch Rollen
 
Klasse          <=>
* weniger Aufwand
* „don't mock concrete 
classes“ 
  Zitat aus Freeman / Pryce 2009
   
„Setzbarkeit“
Dependency Injection
* DOCs setzbar
* Konstruktor vs. Setter
* kein static
http://commons.wikimedia.org/wiki/File:Syringe_Glove_01.jpg
   
Stub mit Bordmittel
* Input kontrollierbar
* etwas sperrig
Controllability (INPUT) 
   
Stub mit Mockframework
einfacher bei breiteren Interfaces
   
Observability (OUTPUT) 
Test Spy mit Bordmitteln 
   
* knapp
* „behavior verification“
Test Spy mit Mockframework 
   
...
Test
GUI
Service
„trainwreck code“
Begriff von Freeman / Price 2009
http://upload.wikimedia.org/wikipedia/commons/b/b5/Durango_Silverton_Train.jpg?uselang=de
Transitive Abhängigkeiten
Problem: Implizite Abhängigkeiten
   
...
Test
* Abhängigkeit explizit
* nur zu „Nachbarn“
Begriff „trainwreck code“ von Freeman / Price 2009
http://commons.wikimedia.org/wiki/File:1918trainwreck.jpg
Transitive Abhängigkeiten
GUI
Service
   
Dependency Injection
Kontext Objekte
* kennen nur Nachbarn
Abhängigkeit
http://commons.wikimedia.org/wiki/File:Syringe_Glove_01.jpg
   
Ciao „accidental complexity“!
   
Ciao „accidental complexity“!
Problem:
* komplexe Setups
* schlechter Fokus
http://commons.wikimedia.org/wiki/File:US_Navy_040619­N­8704K­001_Boatswain_Mate_3rd_Class_Joanna_Saldana_cuts_the_rope_off_a_span_wire_aboard_the_aircraft_carrier_USS_John_F._Kennedy_
%28CV_67%29_during_an_underway_replenishment_.jpg?uselang=de
   
Logische Fehler
* Schichten, z.B.
Prod­Code => Test­Code
* Zyklen 
… und viele andere mehr!
http://de.wikipedia.org/w/index.php?title=Datei:Lattenkiste_a.jpg&filetimestamp=20060723120820
   
Alles hängt von allem ab
Big Ball of Mud Separations 
of 
Concerns
System kleinschneiden 
decomposability
   
Fokus
SRP => Klasse
http://commons.wikimedia.org/wiki/File:Crossroads.jpg
   
2 Aspekte auf einmal
...
Unfokussiert
   
...
...
einfacher testbar
fokussierter
Extract Class Refactoring
   
DfT
Strategie
Isolation
http://commons.wikimedia.org/wiki/File:US_Navy_040619­N­8704K­
001_Boatswain_Mate_3rd_Class_Joanna_Saldana_cuts_the_rope_off_a_span_wire_aboard_t
he_aircraft_carrier_USS_John_F._Kennedy_
%28CV_67%29_during_an_underway_replenishment_.jpg?uselang=de
http://commons.wikimedia.org/wiki/File:Cocks_in_separate_cages,_Thailand.jpg
Ciao 
„accidental complexity“!
TDD
   
Quellen
­ http://www.testbarkeit.de
­ http://en.wikipedia.org/wiki/Design_for_testing
­ Peter Zimmer, 2012: Testability – A Lever to Build Sustaining Systems, OOP 
Conference 2012
­ http://secs.ceas.uc.edu/~cpurdy/sefall11/testing_payneetal_1997.pdf
­ Steve Freeman, Nat Pryce, 2009: 
„Growing Object­Oriented Software guided by Tests“
­ Micheal Feathers, 2004: „Working effectively with legacy systems“
­ Robert C. Martin, 2009: „Clean Code“
­ Gerard Meszaros, 2007: „xUnit Test Patterns“ bzw.  
http://xunitpatterns.com/
­ Christian Johansen, 2010: „Test­Driven JavaScript Development “
­ http://de.wikipedia.org/wiki/Gesetz_von_Demeter
­ Eric Evans, 2003: „Domain Driven Design“
   
Fragen 
und 
Diskussion
http://commons.wikimedia.org/wiki/File:CarService.JPG
   
Lizensiert unter Creative Commons 3.0 Attribution + Sharealike siehe
http://creativecommons.org/licenses/by­sa/3.0/deed.de

Weitere ähnliche Inhalte

Ähnlich wie Wie wird mein Code testbar?

In den sicheren Hafen jax2020
In den sicheren Hafen jax2020In den sicheren Hafen jax2020
In den sicheren Hafen jax2020Stephan Kaps
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsQAware GmbH
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsJosef Adersberger
 
Meine ersten 12 Monate als Plugin-Entwickler für WordPress - WP Camp 2012 Berlin
Meine ersten 12 Monate als Plugin-Entwickler für WordPress - WP Camp 2012 BerlinMeine ersten 12 Monate als Plugin-Entwickler für WordPress - WP Camp 2012 Berlin
Meine ersten 12 Monate als Plugin-Entwickler für WordPress - WP Camp 2012 BerlinDavid Decker
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013Oliver Zeigermann
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHagilemethoden
 
Ü̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und GradleÜ̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und Gradleadesso AG
 
DDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungDDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungFrank Schmittlein
 
Testgetriebene Entwicklung mit JavaScript - webtech 2010
Testgetriebene Entwicklung mit JavaScript - webtech 2010Testgetriebene Entwicklung mit JavaScript - webtech 2010
Testgetriebene Entwicklung mit JavaScript - webtech 2010Sebastian Sanitz
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...gedoplan
 
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...Marc Müller
 
Integration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-PipelineIntegration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-PipelineOPEN KNOWLEDGE GmbH
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerSteven Grzbielok
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018Christian Mücke
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...gedoplan
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker ContainerAndreas Koop
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenOPITZ CONSULTING Deutschland
 
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...Steffen Gebert
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Thorsten Kamann
 
DevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampDevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampWerner Keil
 

Ähnlich wie Wie wird mein Code testbar? (20)

In den sicheren Hafen jax2020
In den sicheren Hafen jax2020In den sicheren Hafen jax2020
In den sicheren Hafen jax2020
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Meine ersten 12 Monate als Plugin-Entwickler für WordPress - WP Camp 2012 Berlin
Meine ersten 12 Monate als Plugin-Entwickler für WordPress - WP Camp 2012 BerlinMeine ersten 12 Monate als Plugin-Entwickler für WordPress - WP Camp 2012 Berlin
Meine ersten 12 Monate als Plugin-Entwickler für WordPress - WP Camp 2012 Berlin
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
 
Ü̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und GradleÜ̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und Gradle
 
DDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungDDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale Entwicklungsumgebung
 
Testgetriebene Entwicklung mit JavaScript - webtech 2010
Testgetriebene Entwicklung mit JavaScript - webtech 2010Testgetriebene Entwicklung mit JavaScript - webtech 2010
Testgetriebene Entwicklung mit JavaScript - webtech 2010
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
 
Integration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-PipelineIntegration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-Pipeline
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?
 
DevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampDevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCamp
 

Mehr von David Völkel

Die Kunst der kleinen Schritte - Softwerkskammer Lübeck
Die Kunst der kleinen Schritte - Softwerkskammer LübeckDie Kunst der kleinen Schritte - Softwerkskammer Lübeck
Die Kunst der kleinen Schritte - Softwerkskammer LübeckDavid Völkel
 
KPI Driven-Development in der Praxis - XP Days Germany
KPI Driven-Development in der Praxis - XP Days GermanyKPI Driven-Development in der Praxis - XP Days Germany
KPI Driven-Development in der Praxis - XP Days GermanyDavid Völkel
 
KPI-Driven-Development
KPI-Driven-DevelopmentKPI-Driven-Development
KPI-Driven-DevelopmentDavid Völkel
 
TDD Trade-Offs @Softwerkskammer Karlsruhe
TDD Trade-Offs @Softwerkskammer KarlsruheTDD Trade-Offs @Softwerkskammer Karlsruhe
TDD Trade-Offs @Softwerkskammer KarlsruheDavid Völkel
 
Global Day of Coderetreat Munich 2018
Global Day of Coderetreat Munich 2018Global Day of Coderetreat Munich 2018
Global Day of Coderetreat Munich 2018David Völkel
 
Die Kunst der kleinen Schritte - XP Days Germany 2018
Die Kunst der kleinen Schritte - XP Days Germany 2018Die Kunst der kleinen Schritte - XP Days Germany 2018
Die Kunst der kleinen Schritte - XP Days Germany 2018David Völkel
 
Global Day of Coderetreat Munich 2017
Global Day of Coderetreat Munich 2017Global Day of Coderetreat Munich 2017
Global Day of Coderetreat Munich 2017David Völkel
 
Mockist vs Classicists TDD
Mockist vs Classicists TDDMockist vs Classicists TDD
Mockist vs Classicists TDDDavid Völkel
 
Wann soll ich mocken?
Wann soll ich mocken?Wann soll ich mocken?
Wann soll ich mocken?David Völkel
 
Baby Steps TDD Approaches
Baby Steps TDD ApproachesBaby Steps TDD Approaches
Baby Steps TDD ApproachesDavid Völkel
 
Clean Test Code (Clean Code Days)
Clean Test Code (Clean Code Days)Clean Test Code (Clean Code Days)
Clean Test Code (Clean Code Days)David Völkel
 
Mockist vs. Classicists TDD
Mockist vs. Classicists TDDMockist vs. Classicists TDD
Mockist vs. Classicists TDDDavid Völkel
 

Mehr von David Völkel (14)

Die Kunst der kleinen Schritte - Softwerkskammer Lübeck
Die Kunst der kleinen Schritte - Softwerkskammer LübeckDie Kunst der kleinen Schritte - Softwerkskammer Lübeck
Die Kunst der kleinen Schritte - Softwerkskammer Lübeck
 
KPI Driven-Development in der Praxis - XP Days Germany
KPI Driven-Development in der Praxis - XP Days GermanyKPI Driven-Development in der Praxis - XP Days Germany
KPI Driven-Development in der Praxis - XP Days Germany
 
KPI-Driven-Development
KPI-Driven-DevelopmentKPI-Driven-Development
KPI-Driven-Development
 
TDD Trade-Offs @Softwerkskammer Karlsruhe
TDD Trade-Offs @Softwerkskammer KarlsruheTDD Trade-Offs @Softwerkskammer Karlsruhe
TDD Trade-Offs @Softwerkskammer Karlsruhe
 
Global Day of Coderetreat Munich 2018
Global Day of Coderetreat Munich 2018Global Day of Coderetreat Munich 2018
Global Day of Coderetreat Munich 2018
 
Trade Off!
Trade Off!Trade Off!
Trade Off!
 
Die Kunst der kleinen Schritte - XP Days Germany 2018
Die Kunst der kleinen Schritte - XP Days Germany 2018Die Kunst der kleinen Schritte - XP Days Germany 2018
Die Kunst der kleinen Schritte - XP Days Germany 2018
 
Global Day of Coderetreat Munich 2017
Global Day of Coderetreat Munich 2017Global Day of Coderetreat Munich 2017
Global Day of Coderetreat Munich 2017
 
Mockist vs Classicists TDD
Mockist vs Classicists TDDMockist vs Classicists TDD
Mockist vs Classicists TDD
 
Wann soll ich mocken?
Wann soll ich mocken?Wann soll ich mocken?
Wann soll ich mocken?
 
Baby Steps TDD Approaches
Baby Steps TDD ApproachesBaby Steps TDD Approaches
Baby Steps TDD Approaches
 
Clean Test Code (Clean Code Days)
Clean Test Code (Clean Code Days)Clean Test Code (Clean Code Days)
Clean Test Code (Clean Code Days)
 
Clean Test Code
Clean Test CodeClean Test Code
Clean Test Code
 
Mockist vs. Classicists TDD
Mockist vs. Classicists TDDMockist vs. Classicists TDD
Mockist vs. Classicists TDD
 

Wie wird mein Code testbar?