You Are Here | 3 |
Roll The Dice: A Faking Opportunity 🎦 | 4 |
This Album | 5 |
Roll The Dice Fakelessly 🎦 | 7 |
Download the Code | 8 |
Steps For The Exercise | 9 |
Our Solution | 10 |
Points To Ponder | 11 |
Awkward By Domain: The Maker & The Dice | 13 |
One Weak Microtest | 14 |
The Goal | 15 |
Download the Code | 16 |
Steps For The Exercise | 17 |
Our Solution | 18 |
Key Points For Your First Fake | 19 |
Intro to Auto-Mocking 🎦 | 21 |
Some Details for the Automocker | 22 |
Download the Code | 23 |
Steps For The Exercise | 24 |
Our Solution | 25 |
Points To Ponder | 26 |
Keyword: Awkward Collaboration ← Click to Preview | 28 |
Awkward Results: Indeterminacy | 29 |
Awkward Setup: Ugly Tests | 30 |
Awkward Runtime: Slow = No | 31 |
Awkward Control: Uncontrolled I/O | 32 |
Trust Your Pain | 33 |
Microtesting Awkward Collaborations | 35 |
Real Life Vs. Test Life | 36 |
The Big Idea | 37 |
Types Of Fake | 38 |
Fakes, Roses, And Terminology | 39 |
Aren't You Really Hacking The Code? ← Click to Preview | 40 |
Not Testing All | 41 |
Microtesting Works | 42 |
Slipping In A Fake | 44 |
Keyword: Stub | 45 |
An Awkward Collaboration | 46 |
Awkward Enough For A Stub? | 47 |
Keyword: Talking Fake | 48 |
Example: InventoryControlTalkingFake | 49 |
Taking It One Step Further | 50 |
Keyword: Listening Fake | 51 |
Example: OrderLogListeningFake | 52 |
The Relationship Between Fake And Awkward ← Click to Preview | 53 |
Refactoring To Facilitate Faking | 55 |
Easy Slip #1: Method Argument Slip | 56 |
Slipping Technique: Parameterize Method | 57 |
Easy Slip #2: Constructor Argument Slip | 58 |
Slipping Technique: Alternate Constructor | 59 |
Slipping Technique: Passing A Factory | 60 |
Problem: Several Awkward Collaborators Example | 61 |
Solution: Several Awkward Collaborators Example | 62 |
Slipping A Fake, Dependency Injection and Inversion Of Control ← Click to Preview | 63 |
Slipping Technique: Extract and Override ← Click to Preview | 64 |
Slipping Technique: Introduce Adapter | 65 |
Introduce Adapter Example | 66 |
Adapter in Pictures | 67 |
Review: Slipping Techniques | 68 |
Introduction | 70 |
The Code | 71 |
Existing Microtests | 72 |
Download The Code | 73 |
The First Case Of Slowness | 74 |
Our Solution 🎦 | 75 |
Great Microtests | 76 |
Make A Stub For Shipper | 77 |
Slipping A Shipper Stub Solution 🎦 ← Click to Preview | 78 |
Making a Listening Fake | 79 |
Listening Fake Solution 🎦 | 80 |
Our Love/Hate Relationship With Singletons | 82 |
Problems With Singletons | 83 |
So, No Static Objects? | 84 |
Solutions to Singletons | 85 |
Slipping Technique: Alternate Construction | 86 |
Slipping Technique: Set Fake Singleton | 87 |
Set Fake Singleton Example ← Click to Preview | 88 |
Slipping Technique: Redirection | 89 |
Redirection Example | 90 |
Static Collaborator: Another Example | 91 |
Static Collaborator: Possible Solution | 92 |
Exercise: Faking A Singleton | 94 |
A First Attempt | 95 |
Download The Code | 96 |
Double Awkwardness | 97 |
Hints | 98 |
Our Solution | 99 |
A Little Story | 101 |
What It Looks Like | 102 |
Robin To The Rescue: FakeTransactionLog | 103 |
The Same Test Every Time | 104 |
What To Do? | 105 |
Keyword: Mock | 106 |
Is That All? | 107 |
Big Idea: Interaction, Not State ← Click to Preview | 108 |
Big Idea: Mocks Can Be Made Automagically | 109 |
How Are Mocks Born? | 110 |
Auto-Mocks: Let the Computer Do It | 112 |
Caution! | 113 |
Mockito Makes Mocks | 114 |
How Mocking Works | 115 |
Using Mocks In A Typical Test | 116 |
Deciphering The Pattern In Test | 117 |
Try That Again In English | 118 |
Ignoring Calls On The Mock | 119 |
Verify The Expectations | 120 |
Invocation Counts | 121 |
Argument Matching | 122 |
Adding A Return Value | 123 |
Sequences | 124 |
The Rest Of The Story | 125 |
Final Advice | 126 |
Automocking Expectations | 128 |
The Challenge | 129 |
The Code | 130 |
Awkwardness ← Click to Preview | 131 |
Download The Code | 132 |
Your Mission: The Simplest Case | 133 |
Solution For The Simplest Case | 134 |
The Second Task | 135 |
Solution For The Second Task | 136 |
The Last Task | 137 |
Solution For The Last Task | 138 |
A Hardware Situation | 140 |
Keyword: Simulator | 141 |
Simulators In Practice | 142 |
The Real Role Of Simulators | 143 |
Real Objects vs. Fakes & Mocks | 145 |
An Example | 146 |
A Defect Slips Through | 147 |
Conclusion: What's Next? | 149 |
All of our programming exercises come with projects pre-configured for IntelliJ, Eclipse and Visual Studio.
Speakers or headphones are required for our videos.