type TestInterface … type LogInterface … type FakeHandler … func (f *FakeHandler) SetResponseBody(responseBody string) { … } func (f *FakeHandler) ServeHTTP(response http.ResponseWriter, request *http.Request) { … } func (f *FakeHandler) ValidateRequestCount(t TestInterface, count int) bool { … } // ValidateRequest verifies that FakeHandler received a request with expected path, method, and body. func (f *FakeHandler) ValidateRequest(t TestInterface, expectedPath, expectedMethod string, body *string) { … }