FaultInjector
class FaultInjector(failureRate: Double = 0.0, exception: () -> Throwable = { FaultInjectedException() }, delay: Duration = Duration.ZERO, delayJitter: Boolean = false, failCount: Int = 0)
Fault injection helper for testing resilience policies.
Use this in tests to inject artificial delays, failures, or intermittent behavior to validate that your policies (retry, circuit breaker, timeout, etc.) handle them correctly.
Prefer failCount over failureRate for deterministic tests — failureRate introduces randomness that can cause intermittent test failures.
Example — deterministic (preferred):
val injector = FaultInjector.builder()
.failCount(3) // fails first 3 calls, succeeds after
.build()Content copied to clipboard
Example — probabilistic:
val injector = FaultInjector.builder()
.failureRate(0.3)
.delay(50.milliseconds)
.build()Content copied to clipboard