Annotation Type AkkaServerlessTest


  • @Target(TYPE)
    @Retention(RUNTIME)
    @ExtendWith(com.akkaserverless.javasdk.testkit.junit.jupiter.AkkaServerlessTestkitExtension.class)
    @Inherited
    public @interface AkkaServerlessTest
    @AkkaServerlessTest registers a JUnit Jupiter extension to automatically manage the lifecycle of AkkaServerlessTestkit and Akka gRPC clients.

    Note: JUnit Jupiter is not provided as a transitive dependency of the Java SDK testkit module but must be added explicitly to your project.

    The Akka Serverless Testkit extension finds a field annotated with AkkaServerlessDescriptor and creates a testkit for this annotated AkkaServerless.

    The testkit can be injected into constructors or test methods, by specifying an AkkaServerlessTestkit parameter. To create an AkkaGrpcClient, add a parameter with the generated client type to a constructor or @Test method.

    Example:

     import com.akkaserverless.javasdk.AkkaServerless;
     import com.akkaserverless.javasdk.testkit.junit.jupiter.AkkaServerlessDescriptor;
     import com.akkaserverless.javasdk.testkit.junit.jupiter.AkkaServerlessTest;
    
     @AkkaServerlessTest
     class MyAkkaServerlessIntegrationTest {
    
       @AkkaServerlessDescriptor
       private static final AkkaServerless MY_AKKA_SERVERLESS = new AkkaServerless(); // with registered services
    
       private final MyServiceClient client; // generated Akka gRPC client
    
       public MyAkkaServerlessIntegrationTest(MyServiceClient client) {
         this.client = client;
       }
    
       @Test
       void test() {
         // use client to test service
       }
     }
     
    See Also:
    AkkaServerlessDescriptor