Class FaultInjectionExtension

java.lang.Object
io.cloudstub.junit.FaultInjectionExtension
All Implemented Interfaces:
org.junit.jupiter.api.extension.AfterTestExecutionCallback, org.junit.jupiter.api.extension.BeforeTestExecutionCallback, org.junit.jupiter.api.extension.Extension

public final class FaultInjectionExtension extends Object implements org.junit.jupiter.api.extension.BeforeTestExecutionCallback, org.junit.jupiter.api.extension.AfterTestExecutionCallback
Standalone JUnit 6 extension that applies fault injection annotations to test methods.

Use this extension when you manage the CloudStub lifecycle yourself (e.g. via @BeforeAll / @AfterAll) rather than through CloudStubExtension.

 static CloudStub cloudMock = new CloudStub();

 @BeforeAll
 static void start() { cloudMock.start(); }

 @AfterAll
 static void stop() { cloudMock.stop(); }

 @RegisterExtension
 FaultInjectionExtension faults = new FaultInjectionExtension(cloudMock);

 @SimulateThrottle(service = "sqs")
 @Test
 void throttleTest() { ... }
 

Fault state is always cleaned up after each test method, even if the test throws. If you use CloudStubExtension, fault annotation support is built in — you do not need this extension as well.

  • Constructor Details

    • FaultInjectionExtension

      public FaultInjectionExtension(CloudStub cloudMock)
  • Method Details

    • beforeTestExecution

      public void beforeTestExecution(org.junit.jupiter.api.extension.ExtensionContext context)
      Specified by:
      beforeTestExecution in interface org.junit.jupiter.api.extension.BeforeTestExecutionCallback
    • afterTestExecution

      public void afterTestExecution(@NonNull org.junit.jupiter.api.extension.ExtensionContext context)
      Specified by:
      afterTestExecution in interface org.junit.jupiter.api.extension.AfterTestExecutionCallback