Junior — Middle
Кои библиотеки използвахте за създаване на мок обекти в тестването?
sobes.tech AI
Отговор от AI
В 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("неочакван резултат: %s", res)
}
m.AssertExpectations(t)
}
Тези библиотеки помагат да се изолира тестираният код от външните зависимости и да се проверят взаимодействията с тях.