Как тестировать retry logic?

Middle
346 просмотров
AFK Offer AI

Retry logic тестируется через dependency injection. Передавай функцию или интерфейс вместо реального вызова. В тесте: mock возвращает ошибку N раз, потом успех — проверяешь что retry сработал. Проверяй: правильное количество попыток, backoff delays (через мок clock), что после max retries возвращается последняя ошибка, что non-retryable ошибки не ретраятся. Пример: attempts := 0; mockFn := func() error { attempts++; if attempts < 3 { return errTemp }; return nil }. Проверь attempts == 3. Тестируй и jitter — что delay не фиксированный.

Следующий вопрос

Как делать smoke test?