go-by-test/countdown/countdown_test.go

36 lines
463 B
Go

package countdown
import (
"bytes"
"testing"
)
type SpySleeper struct {
Calls int
}
func (s *SpySleeper) Sleep() {
s.Calls++
}
func TestCountdown(t *testing.T) {
buffer := &bytes.Buffer{}
sleeper := &SpySleeper{}
Countdown(buffer, sleeper)
got := buffer.String()
want := `3
2
1
Go!`
if got != want {
t.Errorf("got %q want %q", got, want)
}
if sleeper.Calls != 3 {
t.Errorf("not enough calls to sleeper, want 3 got %d", sleeper.Calls)
}
}