master
1package main
2
3import (
4 "bytes"
5 "testing"
6)
7
8type SpySleeper struct {
9 Calls int
10}
11
12func (s *SpySleeper) Sleep() {
13 s.Calls++
14}
15
16func TestCountdown(t *testing.T) {
17 buffer := &bytes.Buffer{}
18 spySleeper := &SpySleeper{}
19
20 Countdown(buffer, spySleeper)
21
22 got := buffer.String()
23 want := `3
242
251
26Go!`
27
28 if got != want {
29 t.Errorf("got %q want %q", got, want)
30 }
31
32 if spySleeper.Calls != 4 {
33 t.Errorf("not enough calls to sleeper, want 4 got %d", spySleeper.Calls)
34 }
35}