Как стать автором
Обновить

Комментарии 3

Я бы написал по другому… на конкретном примере


type Env interface {
  GetUserByPhone(phone string) (*model.User, error)
}

func CheckEmployee(env *Env, phone string) (bool, error) {
    user, err := GetUserByPhone(phone)
    return user != nil, err
}

Дальше https://github.com/matryer/moq генерит мок Env и пишу тест на бизнес логику CheckEmployee. Шаблон теста генерит https://github.com/cweill/gotests. Это в стиле clean architecture, но без заморочек.

В качестве альтернативы также можно поднимать образ контейнера перед запуском тестов, а потом уничтожать его. Подробнее об этом можно почитать тут.

Или использовать testcontainers https://golang.testcontainers.org/


Правда, миграцию всё равно придётся как-то вызывать.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории