Let's write an AlarmClock object and an AlarmClockTest. Now a worry I have in the back of my mind is that tests are supposed to run quickly. So I can't write a test that runs for several hours. How about setting the alarm clock for the current time, and then seeing whether it comes back. I'm worried that a possible error is that the clock might never return.
Time now minutes.
This test won't compile until I define AlarmClock, which I do. Now I'll run the test. It's not that I don't know what will happen, it's that I want to reinforce my habit of running the tests very frequently. I'll build it, using a standard pattern, and also build the initialization method because my fingers know to do them both. The first method, on the class side, just creates a new AlarmClock and initializes it.