In this exercise you need to use a spy or fake to test the code.
Today’s exercise is The Doppelganger kata, and in particular the MailSender problem. Read the code - the MailSender class. It contains two versions of a method that has two different bugs, marked with comments. How could you write tests that would fail because of each bug? Discuss in pairs. Don’t write any code at this point, just talk.
Explain what a test double is and how we could use one in this problem. You could explain the various different kinds of test double including spy and fake.
Ask people to write tests for each of the bugs using test doubles. Each test should fail because of a bug, and pass if you change the code to fix the bug. Do not change the MailSender class otherwise.
Why did we need a test double in order to test this code? Ask When should you use this?