У меня проблема, когда я хочу получить ответное тело из моего макета, в настоящее время у меня есть такой макет:
func (m *MockCarService) GetCar(ctx context.Context, store store.Store, IDCar uint) (interface{}, error) {
call := m.Called(ctx, store)
res := call.Get(0)
if res == nil {
return nil, call.Error(1)
}
return res.(*models.Cars), call.Error(1)
}
Затем я создаю handler_test. go вот так:
func TestGetCar(t *testing.T) {
var store store.Store
car := &models.Cars{
ID: 12345,
BrandID: 1,
Name: "Car abc",
Budget: 2000,
CostPerMile: 4000,
KpiReach: 6000,
}
mockService := func() *service.MockCarService {
svc := &service.MockCarService{}
svc.On("GetCar", context.Background(), car.ID).Return(car, nil)
return svc
}
handlerGet := NewCarHandler(mockService())
actualResponse := handlerGet.GetCar(store)
expected := `{"success":true,"data":[],"errors":[]}`
assert.Equal(t, expected+"\n", actualResponse)
}
Что я получил, так это какая-то ошибка (http.HandlerFun c) (0x165e020) (не могу принять c тип в качестве аргумента)
Понятия не имею как это исправить. Так как я использую обработчик, как это:
func (ah *CampaignHandler) GetCampaigns(store store.Store) func(w http.ResponseWriter, r *http.Request) {
return func(w http.ResponseWriter, r *http.Request) { .....