test driven development: a love story
TRANSCRIPT
![Page 1: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/1.jpg)
A Love Story
@nellshamrell
Test Driven Development
Tuesday, April 16, 13
![Page 2: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/2.jpg)
Code
Tuesday, April 16, 13
![Page 3: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/3.jpg)
Legacy Code
Tuesday, April 16, 13
![Page 4: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/4.jpg)
Tuesday, April 16, 13
![Page 5: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/5.jpg)
Tuesday, April 16, 13
![Page 6: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/6.jpg)
Tuesday, April 16, 13
![Page 7: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/7.jpg)
Grief
Tuesday, April 16, 13
![Page 8: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/8.jpg)
Stages of GriefDenialAnger
BargainingDepressionAcceptance
Tuesday, April 16, 13
![Page 9: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/9.jpg)
Grief
Tuesday, April 16, 13
![Page 10: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/10.jpg)
Test Driven Development is the key
TDD
Tuesday, April 16, 13
![Page 11: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/11.jpg)
Tuesday, April 16, 13
![Page 12: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/12.jpg)
Denial
Tuesday, April 16, 13
![Page 13: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/13.jpg)
I will write tests when I have time
Tuesday, April 16, 13
![Page 14: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/14.jpg)
Changed Class
Tuesday, April 16, 13
![Page 15: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/15.jpg)
Changed Class
Unrelated Class
Unrelated Class
Tuesday, April 16, 13
![Page 16: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/16.jpg)
Changed Class
Unrelated Class
Unrelated Class
Unrelated Class
Tuesday, April 16, 13
![Page 17: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/17.jpg)
Changed Class
Unrelated Class
Unrelated Class
Unrelated Class
Unrelated Class
Unrelated Class
Unrelated Class
Unrelated Class
Unrelated Class
Unrelated Class
Unrelated Class
Tuesday, April 16, 13
![Page 18: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/18.jpg)
Deploying without tests is flying blind
Tuesday, April 16, 13
![Page 19: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/19.jpg)
A magical, better time in the future never comes
Tuesday, April 16, 13
![Page 20: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/20.jpg)
The more stress you feel, the less testing
you will do...- Kent Beck
Tuesday, April 16, 13
![Page 21: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/21.jpg)
The less testing you do, the more errors
you will make- Kent Beck
Tuesday, April 16, 13
![Page 22: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/22.jpg)
The ideal time to write tests is now
Tuesday, April 16, 13
![Page 23: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/23.jpg)
But...where do I start?
Tuesday, April 16, 13
![Page 24: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/24.jpg)
Tuesday, April 16, 13
![Page 25: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/25.jpg)
Anger
Tuesday, April 16, 13
![Page 26: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/26.jpg)
What were they thinking?!
Tuesday, April 16, 13
![Page 27: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/27.jpg)
I cannot change past actions
Tuesday, April 16, 13
![Page 28: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/28.jpg)
I can only change my own actions
Tuesday, April 16, 13
![Page 29: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/29.jpg)
Adding tests to legacy code takes time
Tuesday, April 16, 13
![Page 30: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/30.jpg)
Take small steps that can be verified
- Noel Rappin
Tuesday, April 16, 13
![Page 31: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/31.jpg)
Any new code must have tests
Tuesday, April 16, 13
![Page 32: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/32.jpg)
New Code
Legacy Code
Call new testedcode from legacy
code
Tuesday, April 16, 13
![Page 33: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/33.jpg)
Bugs in code must be reproduced with a test
Tuesday, April 16, 13
![Page 34: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/34.jpg)
User Steps Test Steps
Tuesday, April 16, 13
![Page 35: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/35.jpg)
User Steps Test StepsVisit form
Tuesday, April 16, 13
![Page 36: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/36.jpg)
User Steps Test StepsVisit form
Leave field blank
Tuesday, April 16, 13
![Page 37: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/37.jpg)
User Steps Test StepsVisit form
Leave field blank
Click “Submit”
Tuesday, April 16, 13
![Page 38: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/38.jpg)
User Steps Test StepsVisit form
Leave field blank
Click “Submit”
Application crashes
Tuesday, April 16, 13
![Page 39: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/39.jpg)
User Steps Test StepsVisit form
Leave field blank
Click “Submit”
Application crashes
New object
Tuesday, April 16, 13
![Page 40: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/40.jpg)
User Steps Test StepsVisit form
Leave field blank
Click “Submit”
Application crashes
New object
Leave field blank
Tuesday, April 16, 13
![Page 41: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/41.jpg)
User Steps Test StepsVisit form
Leave field blank
Click “Submit”
Application crashes
New object
Leave field blank
Save object
Tuesday, April 16, 13
![Page 42: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/42.jpg)
User Steps Test StepsVisit form
Leave field blank
Click “Submit”
Application crashes
New object
Leave field blank
Save object
Test returns exception
Tuesday, April 16, 13
![Page 43: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/43.jpg)
What should my code do?
Tuesday, April 16, 13
![Page 44: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/44.jpg)
it “returns a useful error” do
end
Tuesday, April 16, 13
![Page 45: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/45.jpg)
it “returns a useful error” do
end
new_object = Object.new
Tuesday, April 16, 13
![Page 46: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/46.jpg)
it “returns a useful error” do
end
new_object = Object.newnew_object.required = nil
Tuesday, April 16, 13
![Page 47: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/47.jpg)
it “returns a useful error” do
end
new_object = Object.newnew_object.required = nilnew_object.save!
Tuesday, April 16, 13
![Page 48: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/48.jpg)
it “returns a useful error” do
end
new_object = Object.newnew_object.required = nilnew_object.save!new_object.errors.should include (“Required field is blank”)
Tuesday, April 16, 13
![Page 49: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/49.jpg)
Use tests to learn legacy code
Tuesday, April 16, 13
![Page 50: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/50.jpg)
Tuesday, April 16, 13
![Page 51: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/51.jpg)
Bargaining
Tuesday, April 16, 13
![Page 52: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/52.jpg)
I write my code, then write my test
Tuesday, April 16, 13
![Page 53: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/53.jpg)
Write Code
Write Tests
Tuesday, April 16, 13
![Page 54: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/54.jpg)
Write Code
Tuesday, April 16, 13
![Page 55: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/55.jpg)
Write Code
Manually Test
Tuesday, April 16, 13
![Page 56: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/56.jpg)
Write Code
Manually Test
Modify Code
Tuesday, April 16, 13
![Page 57: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/57.jpg)
Write Code
Manually Test
Modify Code
Manually Test
Tuesday, April 16, 13
![Page 58: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/58.jpg)
Write Code
Manually Test
Modify Code
Manually Test
WriteTest
Tuesday, April 16, 13
![Page 59: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/59.jpg)
Write Code
Manually Test
Modify Code
Manually Test
WriteTest
Modify Code
Tuesday, April 16, 13
![Page 60: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/60.jpg)
Write Code
Manually Test
Modify Code
Manually Test
WriteTest
Modify Code
Manually Test
Tuesday, April 16, 13
![Page 61: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/61.jpg)
Write Code
Manually Test
Modify Code
Manually Test
WriteTest
Modify Code
Manually Test
ModifyTest
Tuesday, April 16, 13
![Page 62: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/62.jpg)
Testing last leaves holes in test coverage
Tuesday, April 16, 13
![Page 63: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/63.jpg)
Write FailingTest
Tuesday, April 16, 13
![Page 64: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/64.jpg)
Write FailingTest
Make Test Pass
Tuesday, April 16, 13
![Page 65: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/65.jpg)
Write FailingTest
Make Test Pass
Refactor
Tuesday, April 16, 13
![Page 66: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/66.jpg)
Write FailingTest
Make Test Pass
Refactor
Red
Tuesday, April 16, 13
![Page 67: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/67.jpg)
Write FailingTest
Make Test Pass
Refactor
Red Green
Tuesday, April 16, 13
![Page 68: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/68.jpg)
Write FailingTest
Make Test Pass
Refactor
Red Green Refactor
Tuesday, April 16, 13
![Page 69: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/69.jpg)
Never write new functionality without
a failing test- Steve Freeman
& Nat PryceTuesday, April 16, 13
![Page 70: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/70.jpg)
Testing is about trust
- Robert C. Martin
Tuesday, April 16, 13
![Page 71: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/71.jpg)
Tuesday, April 16, 13
![Page 72: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/72.jpg)
Depression
Tuesday, April 16, 13
![Page 73: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/73.jpg)
What’s the point?
Tuesday, April 16, 13
![Page 74: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/74.jpg)
Change will happen
Tuesday, April 16, 13
![Page 75: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/75.jpg)
Every line of tested code is reliable code
Tuesday, April 16, 13
![Page 76: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/76.jpg)
Every line of untested code is unreliable code
Tuesday, April 16, 13
![Page 77: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/77.jpg)
Do the right thing
Tuesday, April 16, 13
![Page 78: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/78.jpg)
Tuesday, April 16, 13
![Page 79: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/79.jpg)
Acceptance
Tuesday, April 16, 13
![Page 80: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/80.jpg)
Tests prevent breaking
Tuesday, April 16, 13
![Page 81: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/81.jpg)
Tests are documentation
Tuesday, April 16, 13
![Page 82: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/82.jpg)
it “returns the correct rate” do tax_rate(seattle).should == .095end
Tuesday, April 16, 13
![Page 83: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/83.jpg)
it “returns the correct rate” do tax_rate(seattle).should == .095endit “creates a new object” do get :new assigns(new_object).should_be new_recordend
Tuesday, April 16, 13
![Page 84: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/84.jpg)
it “returns the correct rate” do tax_rate(seattle).should == .095endit “creates a new object” do get :new assigns(new_object).should_be new_recordendit “saves to the database” do expect(save_method).to change{Table.count}.by(1)end
Tuesday, April 16, 13
![Page 85: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/85.jpg)
Test Driven Code is better code
Tuesday, April 16, 13
![Page 86: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/86.jpg)
ModularLoosely CoupledSmall Methods
Test Driven Code is...
Tuesday, April 16, 13
![Page 87: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/87.jpg)
Tests remove fear
Tuesday, April 16, 13
![Page 88: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/88.jpg)
Tuesday, April 16, 13
![Page 89: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/89.jpg)
Love
Tuesday, April 16, 13
![Page 90: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/90.jpg)
Test Drive an external API?
Tuesday, April 16, 13
![Page 91: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/91.jpg)
My Code API
Tuesday, April 16, 13
![Page 92: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/92.jpg)
My Code API
Calls API method
Tuesday, April 16, 13
![Page 93: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/93.jpg)
My Code API
Calls API method
Sends response
Tuesday, April 16, 13
![Page 94: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/94.jpg)
Mocks and Stubs
Tuesday, April 16, 13
![Page 95: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/95.jpg)
A stub is a stand in for an object called
by my code
Tuesday, April 16, 13
![Page 96: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/96.jpg)
My Code API Stub
Tuesday, April 16, 13
![Page 97: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/97.jpg)
My Code
Calls API method
API Stub
Tuesday, April 16, 13
![Page 98: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/98.jpg)
My Code
Calls API method
Sends scripted response
API Stub
Tuesday, April 16, 13
![Page 99: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/99.jpg)
Mocks are “stubs with attitude”
- Russ Olsen
Tuesday, April 16, 13
![Page 100: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/100.jpg)
My Code API Mock
Tuesday, April 16, 13
![Page 101: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/101.jpg)
My Code
Calls API method
API Mock
Tuesday, April 16, 13
![Page 102: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/102.jpg)
My Code
Calls API method
Sends scripted response
API Mock
Tuesday, April 16, 13
![Page 103: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/103.jpg)
My Code API Mock
Tuesday, April 16, 13
![Page 104: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/104.jpg)
My Code
Unexpected method call
API Mock
Tuesday, April 16, 13
![Page 105: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/105.jpg)
My Code
Unexpected method call
API Mock
Test FAILSX
Tuesday, April 16, 13
![Page 106: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/106.jpg)
The truth is out there(Just need to ask!)
Tuesday, April 16, 13
![Page 107: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/107.jpg)
Testing is evolving
Tuesday, April 16, 13
![Page 108: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/108.jpg)
Testing is a journey
Tuesday, April 16, 13
![Page 109: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/109.jpg)
Test Driven Development changed my code
Tuesday, April 16, 13
![Page 110: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/110.jpg)
Test Driven Development changed me
Tuesday, April 16, 13
![Page 111: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/111.jpg)
Test Driven Development is developing
beyond myself
Tuesday, April 16, 13
![Page 112: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/112.jpg)
Code
Tuesday, April 16, 13
![Page 113: Test Driven Development: A Love Story](https://reader030.vdocument.in/reader030/viewer/2022013011/55a253de1a28abc2758b4858/html5/thumbnails/113.jpg)
Nell Shamrell
Software Development Engineer withBlue Box Inc
@nellshamrellTuesday, April 16, 13