Какой пакет использовался для создания моков?

В Go для создания мок-объектов в тестировании часто используют следующие библиотеки:

Короткий ответ

Что ответить на собеседовании

В Go для создания мок-объектов в тестировании часто используют следующие библиотеки:

Подробный разбор

Ответ с пояснениями

В Go для создания мок-объектов в тестировании часто используют следующие библиотеки:

  • gomock — официальная библиотека от Google, позволяет генерировать моки на основе интерфейсов с помощью инструмента mockgen.
  • testify/mock — часть популярного пакета testify, предоставляет удобный способ создания моков с возможностью задавать ожидания и проверки вызовов.

Пример использования testify/mock:

import (
    "testing"
    "github.com/stretchr/testify/mock"
)

type MyInterface interface {
    DoSomething(int) string
}

type MyMock struct {
    mock.Mock
}

func (m *MyMock) DoSomething(i int) string {
    args := m.Called(i)
    return args.String(0)
}

func TestMyFunction(t *testing.T) {
    m := new(MyMock)
    m.On("DoSomething", 123).Return("result")

    res := m.DoSomething(123)
    if res != "result" {
        t.Errorf("unexpected result: %s", res)
    }

    m.AssertExpectations(t)
}

Эти библиотеки помогают изолировать тестируемый код от внешних зависимостей и проверять взаимодействия с ними.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку