The document describes a workshop on the Fake It Outside-In Test Driven Development (TDD) technique. It discusses influences on the technique from 2003-2017 and combinations of patterns. The workshop goals are to understand TDD patterns and tradeoffs of Fake It vs triangulation and Fake It vs Outside-In mocking. The agenda includes building blocks, theory, screencasts, exercises, a coding kata in pairs, and reflection.
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
Fake It Outside-In TDD Workshop @ Clean Code Days
1. FAKE IT OUTSIDE-IN TDD
WORKSHOP
David Völkel
20th June 2017 @ Clean Code Days
https://github.com/davidvoelkel/fake-it-outside-in-tdd-workshop-clean-code-days
4. INFLUENCES
2003 Kent Beck’s "Fake It" Pattern
2009 #GOOS’s "Outside-In" Design
2013 Emily Bache
"Outside-In development with Double Loop TDD"
2014 Justin Searls "The Failures of 'Intro to TDD'"
COMBINATION
2015 Dimitry Polivaev Outside-In with faked Data
2016 SoCraTes DE Outside-In Fake It Session
2017 Refinement
5. INFLUENCES
2003 Kent Beck’s "Fake It" Pattern
2009 #GOOS’s "Outside-In" Design
2013 Emily Bache
"Outside-In development with Double Loop TDD"
2014 Justin Searls "The Failures of 'Intro to TDD'"
COMBINATION
2015 Dimitry Polivaev Outside-In with faked Data
2016 SoCraTes DE Outside-In Fake It Session
2017 Refinement
6. INFLUENCES
2003 Kent Beck’s "Fake It" Pattern
2009 #GOOS’s "Outside-In" Design
COMBINATION
FAKE IT OUTSIDE-IN TDD
7. INFLUENCES
2003 Kent Beck’s "Fake It" Pattern
2009 #GOOS’s "Outside-In" Design
2013 Emily Bache
"Outside-In development with Double Loop TDD"
2014 Justin Searls "The Failures of 'Intro to TDD'"
COMBINATION
2016 SoCraTes DE Outside-In Fake It Session
8. INFLUENCES
2003 Kent Beck’s "Fake It" Pattern
2009 #GOOS’s "Outside-In" Design
2013 Emily Bache
"Outside-In development with Double Loop TDD"
2014 Justin Searls "The Failures of 'Intro to TDD'"
COMBINATION
2016 SoCraTes DE Outside-In Fake It Session
2017 Refinement / Work in Progress
9. INFLUENCES
2003 Kent Beck’s "Fake It" Pattern
2009 #GOOS’s "Outside-In" Design
2013 Emily Bache
"Outside-In development with Double Loop TDD"
COMBINATION
2016 SoCraTes DE Outside-In Fake It Session
2017 Refinement / Work in Progress
10. INFLUENCES
2003 Kent Beck’s "Fake It" Pattern
2009 #GOOS’s "Outside-In" Design
2013 Emily Bache
"Outside-In development with Double Loop TDD"
2014 Justin Searls "The Failures of 'Intro to TDD'"
COMBINATION
2016 SoCraTes DE Outside-In Fake It Session
2017 Refinement / Work in Progress
11. INFLUENCES
2003 Kent Beck’s "Fake It" Pattern
2009 #GOOS’s "Outside-In" Design
2013 Emily Bache
"Outside-In development with Double Loop TDD"
2014 Justin Searls "The Failures of 'Intro to TDD'"
2017 Llewelyn Falco "Extreme: Fake it Till you Make It"
COMBINATION
2016 SoCraTes DE Outside-In Fake It Session
2017 Refinement / Work in Progress
12. TODAY’S GOALS
Unterstand TDD patterns & trade-offs
Fake It vs. Triangulation
Fake It vs. Outside-In Mocking
Get to a sequence of very small steps
35. CODING SESSION
KATA
assertThat(format(LocalDate.of(2017, 6, 21)))
.isEqualTo("2017-06-21");
Tasks / Constraints
Obvious Implementation
Fake it / Decompose as long as possible
Then triangulate the remaining logic
Triangulate with fake data
58. OUTSIDE-IN & FAKE IT
Fake It
Triangulation
Start with
• comprehensive
Acceptance Test
• faked result
Drive structure by refactoring
Drive logic by unit tests
59. OUTSIDE-IN & FAKE IT
Fake It
Triangulation
Start with
• comprehensive
Acceptance Test
• faked result
Drive structure by refactoring
Drive logic by unit tests
60. OUTSIDE-IN & FAKE IT
INTEGRATION
Fake It
Triangulation
OPERATION
Start with
• comprehensive
Acceptance Test
• faked result
Drive structure by refactoring
Drive logic by unit tests
63. PAIRING SESSION
KATA
Continue Diamond Kata
https://github.com/davidvoelkel/diamond-kata
CONSTRAINTS
Drive structure by refactoring
Drive conditionals by triangulation
64. What did you observe?
What worked?
What was hard?
REFLECT KATA
75. REFERENCES
2003 Kent Beck’s "TDD by Example“: “Fake It" Pattern
2009 Steve Freeman, Nat Pryce:
„Growing Object Oriented Software Guide by Tests“:
"Outside-In" Design
2013 Emily Bache
"Outside-In development with Double Loop TDD"
2014 Justin Searls "The Failures of 'Intro to TDD'"
2017 Llewelyn Falco "Extreme: Fake it Till you Make It"