← Каталог
Важные интерфейсы и типы Go — 10.2. Тестирование — `testing.T`, таблицы тестов, моки
Фрагмент из «Важные интерфейсы и типы Go»: 10.2. Тестирование — `testing.T`, таблицы тестов, моки.
type mockEmailClient struct {
called bool
}
func (m *mockEmailClient) Send(ctx context.Context, to, msg string) error {
m.called = true
return nil
}
// В тесте:
client := &mockEmailClient{}
svc := NewUserService(repo, client)
_ = svc.WelcomeUser(ctx, "id123")
if !client.called {
t.Error("email not sent")
} type mockEmailClient struct {
called bool
}
func (m *mockEmailClient) Send(ctx context.Context, to, msg string) error {
m.called = true
return nil
}
// В тесте:
client := &mockEmailClient{}
svc := NewUserService(repo, client)
_ = svc.WelcomeUser(ctx, "id123")
if !client.called {
t.Error("email not sent")
}