Создаёшь httptest.NewRecorder и http.NewRequest, оборачиваешь тестовый handler в middleware и вызываешь ServeHTTP. Проверяешь что recorder получил правильный статус, headers, body. Для проверки что middleware передал значение в context — тестовый handler читает из ctx и записывает в ответ.