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}