func TestRequestTimeoutBehavior(t *testing.T) { … } type verifier … type wantNoError … func (v wantNoError) verify(t *testing.T, got error) { … } type wantContains … func (v wantContains) verify(t *testing.T, got error) { … } type wantError … func (v wantError) verify(t *testing.T, got error) { … } type wantEitherOr … func (v wantEitherOr) verify(t *testing.T, got error) { … } type waiter … type waitWithDuration … func (w waitWithDuration) wait() <-chan time.Time { … } func (w waitWithDuration) close() { … } type waitWithChannelClose … func (w waitWithChannelClose) wait() <-chan time.Time { … } func (w waitWithChannelClose) close() { … }